printf函數是輸出到控制檯函數
printf函數是c語言標準庫函數,可以準確的格式輸出程序運算結果spa
printf函數的調用格式爲:code
簡單用法:blog
// int類型 int number = 10; printf("number的值是%i",number) //使用%i // float類型 float FloatNumber = 20.0f; // float類型要加上f標示,默認是double類型的 printf("FloatNumber的值是%f",FloatNumber) // 使用%f // double類型 double DoubleNumber = 30.01234567890; printf("DoubleNumber的值是%lf",DoubleNumber) //使用lf,longfloat printf("DoubleNumber的值是%.10lf",DoubleNumber) // printf函數默認強制輸出小數點後6位,想要輸出雙精度的須要指定你要輸出小數點後面幾位 // char類型 char CharNumber = 'a'; printf("CharNumber的值是%c",CharNumber) // 使用%c
指定位寬字符串
// 指定位寬 int number = 99; // 如何指定位寬,%mi;其中m就是位寬,而i就是輸出對應的數據類型 printf("%i\n",number); printf("%5i\n",number); // 能夠明顯的看到number的左邊多出來一段空格,實際上是由三個空格的 // 默認狀況下位寬是右對齊,若是須要輸出的位寬不夠會在左邊補空格 // 若是在位寬前面加負號-,就會改變對齊方式爲左對齊,若是須要輸出的位寬不夠會在右邊補空格 printf("%-5i\n",number); // 若是指定的位寬,但實際的內容超過了位寬的,會按照實際內容進行展現 int value = 999999; // value是有6位的 printf("%5i\n",value); //這裏的value打印出是6位的,並非指定位寬的5位
打印出01,02,03的效果get
// 若是咱們想打印出01,02,03,04,05的效果的話怎麼辦呢? // 只須要在指定位寬前面加0便可 int sum = 1; printf("%2i\n",sum); // 打印出 1; printf("%02i\n",sum); // 打印出01 在指定位寬的前面加了0,注意添加的位置
保留位數it
// 保留位數 float floatValue = 3.1415926666; printf("%f\n",floatValue); // %f默認保留6位小數 // 指定保留幾位小數 printf("%.2f\n",floatValue); // %.nf 在前面添加., n爲保留幾位小數的數字便可 // %f各類坑 // 1,我想把floatValue所有打印出來,那保留位數填寫10看看應該所有都能顯示吧? // 若是輸出數據超出了有效位數,那後面就會出現一些垃圾數據。 printf("%.10f\n",floatValue); // 3.1415927410 看有效位數y只有7位 // 那若是想要完整輸出這個floatValue就要用double類型 double doubleValue = 3.1415926666; printf("%.10lf\n",doubleValue); // double類型的有效位數是15位,那若是超過15位的話也沒有辦法了哈
scanf函數是一個阻塞式函數,程序若是遇到就會停下來等待用戶輸入內容class
格式:scanf("格式化字符串",列表項)變量
// 要求存儲用戶輸入的整數 // 1,用戶輸入的整數是肯定的麼?不肯定,定義一個變量 int number = 0; // 2,如何接受用戶輸入的整數scanf() printf("請輸入一個整數,以回車結束\n"); scanf("%i",&number); // 使用&符號,注意必須告訴scanf函數詳細地址,才能存儲用戶輸入的數據 // 3,格式:scanf("格式化字符串",列表項) printf("%i\n",number);
練習:從控制檯輸入兩個整數,計算兩個整數的和原理
// 練習:從控制檯輸入兩個整數,計算兩個整數的和 // 定義兩個變量 int value1 = 0; int value2 = 0; // 使用scanf函數,讓用戶從控制檯輸入整數 printf("請您輸入第一個整數,以回車結束\n"); scanf("%i",&value1); printf("請您輸入第二個整數,以回車結束\n"); scanf("%i",&value2); // 定義s第三個變量,接收兩個變量相加的值 int sum = 0; // 求和 sum = value1+value2; printf("%i+%i=%i\n",value1,value2,sum);
// 練習:從控制檯輸入兩個整數,計算兩個整數的和 // 定義兩個變量 int value1 = 0; int value2 = 0; // 使用scanf函數,讓用戶從控制檯輸入整數 printf("請您輸入兩個數字,以逗號分隔,以回車結束\n"); scanf("%i,%i",&value1,&value2); // 注意輸入的內容要求必需要與格式花字符串一摸同樣 // 若是輸入的數據與格式化字符串不匹配,那麼scanf就會自動終止 // 定義s第三個變量,接收兩個變量相加的值 int sum = 0; // 求和 sum = value1+value2; printf("%i+%i=%i\n",value1,value2,sum);
scanf("%i%i",&value1,&value2); // 此時在控制檯輸入回車或者空格,才能區分這兩個數據
scanf("%i,%c,%i",&value1,&value3,&value2); printf("%i,%c,%i\n",value1,value3,value2);
scanf("%i\n",&value1); // 此時在控制檯輸入按回車是沒有用的,結束不了,怎麼結束呢輸入一個不匹配的字符便可
int value1 = 0; int value2 = 0; char value3; // value1-->123 value3-->a value2-->456 // scanf("%i%c%i",&value1,&value3,&value2); printf("請輸入數據,以回車結束\n"); scanf("%i%c%i",&value1,&value3,&value2); printf("value1=%i,value3=%c,value2=%i\n",value1,value3,value2); // 若是輸入緩衝區有內容就不會讓用戶去輸入,直接取 char value4; int value5 = 0; scanf("%c%i",&value4,&value5); printf("value4=%c,value5=%i\n1",value4,value5); 控制檯: 請輸入數據,以回車結束 123 你好啊 456 value1=123,value3= ,value2=0 value4=n,value5=0 1Program ended with exit code: 0