這也是在stdio.h中聲明的一個(gè)函數(shù),因此使用前必須加入#include <stdio.h>。調(diào)用scanf函數(shù)時(shí),需要傳入變量的地址作為參數(shù),scanf函數(shù)會等待標(biāo)準(zhǔn)輸入設(shè)備(比如鍵盤)輸入數(shù)據(jù),并且將輸入的數(shù)據(jù)賦值給地址對應(yīng)的變量
int age;
scanf("%d", &age);
scanf函數(shù)時(shí),會等待用戶的鍵盤輸入,并不會往后執(zhí)行代碼。scanf的第1個(gè)參數(shù)是"%d",說明要求用戶以10進(jìn)制的形式輸入一個(gè)整數(shù)。
這里要注意,scanf的第2個(gè)參數(shù)傳遞的不是age變量,而是age變量的地址&age,&是C語言中的一個(gè)地址運(yùn)算符,可以用來獲取變量的地址
輸入完畢后,敲一下回車鍵,目的是告訴scanf函數(shù)我們已經(jīng)輸入完畢了,scanf函數(shù)會將輸入的值賦值給age變量
1> 用scanf函數(shù)接收3個(gè)數(shù)值,每個(gè)數(shù)值之間用中劃線-隔開
scanf("%d-%d-%d", &a, &b, &c);
3個(gè)%d之間是用中劃線-隔開的,因此我們在每輸入一個(gè)整數(shù)后都必須加個(gè)中劃線-,比如這樣輸入,不然在給變量賦值的時(shí)候會出問題
注意:數(shù)值之間的分隔符是任意的,不一定要用中劃線-,可以是逗號、空格、星號*、井號#等等,甚至是英文字母
// 逗號,
scanf("%d,%d,%d", &a, &b, &c); // 輸入格式:10,14,20
// 井號#
scanf("%d#%d#%d", &a, &b, &c); // 輸入格式:10#14#20
// 字母x
scanf("%dx%dx%d", &a, &b, &c); // 輸入格式:10x14x20
1> 用scanf函數(shù)接收3個(gè)數(shù)值,每個(gè)數(shù)值之間用空格隔開
scanf("%d %d %d", &a, &b, &c);
3個(gè)%d之間是用空格隔開的,我們在每輸入一個(gè)整數(shù)后必須輸入一個(gè)分隔符,分隔符可以是空格、tab、回車
scanf的第一個(gè)參數(shù)中不要包含/n,比如scanf(“%d/n”, &a); 這將導(dǎo)致scanf函數(shù)無法結(jié)束
5.課程代碼
1 #include <stdio.h> 2 3 int main() 4 { 5 // 定義一個(gè)變量,用來保存用戶輸入的整數(shù) 6 int number; 7 8 // scanf函數(shù)只接受變量的地址 9 // scanf函數(shù)是一個(gè)阻塞式的函數(shù),等待用戶輸入10 // 用戶輸入完畢后,就會將用戶輸入的值賦值給number變量11 // 函數(shù)調(diào)用完畢12 scanf("%d", &number);13 14 PRintf("用戶輸入的值是%d/n", number);15 16 return 0;17 }
1 /* 2 提示用戶輸入兩個(gè)整數(shù),計(jì)算并且輸出兩個(gè)整數(shù)的和 3 */ 4 5 #include <stdio.h> 6 7 int main() 8 { 9 // 1.定義2個(gè)變量,保存用戶輸入的整數(shù)10 int num1, num2;11 12 // 2.提示用戶輸入第1個(gè)整數(shù)13 printf("請輸入第1個(gè)整數(shù):/n");14 15 // 3.接收用戶輸入的第1個(gè)整數(shù)16 scanf("%d", &num1);17 18 // 4.提示用戶輸入第2個(gè)整數(shù)19 printf("請輸入第2個(gè)整數(shù):/n");20 21 // 5.接收用戶輸入的第2個(gè)整數(shù)22 scanf("%d", &num2);23 24 // 6.計(jì)算和,并且輸出25 int sum = num1 + num2;26 printf("%d+%d=%d/n", num1, num2, sum);27 28 //printf("num1=%d, num2=%d/n", num1, num2);29 return 0;30 }
新聞熱點(diǎn)
疑難解答
圖片精選