C語言 scanf()函數的數據輸入操作
(1)輸入多個數據的分隔處理。如果在格式字符串中不包含除了格式指示符之外的普通字符,則在輸入多個數據時,可以使用空格隔開,或者按Tab鍵分開,或者按Enters隔開。例如:
scanf ("%d%d",&a,&b);
假設要給a輸入12,給b輸入24,則正確的輸入操作為: 12口24/
或者: 12/
24/
或者: 12 24/ (輸入12后,按下Tab鍵)。
(2)當“格式字符串”中出現普通字符,務必原樣輸入。例如:
scanf("%d,%d",&a,&b);
假設給a輸入12,給b輸入24,正確的輸入操作為: 12, 24/
(3)當scanfO函數中的格式字符串中出現轉義字符(如\n ),系統(tǒng)并不把它當轉義字符來解釋,從而產生一個控制操作,將其視為普通字符,所以也要原樣輸入。例如:
scanf("a=%d.b=%d\n",&a.&b);
假設給a輸入12,給b輸入24,正確的輸入操作為:
a*12, b=24\n/
(4)輸入數據時,遇到以下情況,系統(tǒng)認為該數據輸入結束:
①遇到空格,或者按Enters,或者按Tab鍵。
②遇到輸入域寬度結束。例如“%3d”,只取3列。
③遇到非法輸入。如在輸入數值數據時,遇到字母等非數值符號(數值符號僅由數字字符0~9、小數點和正負號構成)。例如:
int a,b;
scanf ("%d",&a);
printf("a=%d\n",a,b);
程序執(zhí)行時,當輸入:
123a5/
則輸出:
a=123, b=-858993460
系統(tǒng)為變量a讀取數據時,當讀取了 “123”,其后面是字符“a”,這不是一個合法的數值字符, 所以認為本次輸入結束。
(5)使用格式說明符“%c”輸入單個字符時,空格和轉義字符均作為有效字符被輸入。例如:
scanf("%c%c%c".&cl,&c2,&c3);
printf ( "chl-%c #ch2~%c ,ch3—%c\n".chl,ch2 ,ch3);
程序執(zhí)行時,若輸入ACDBCIC/,則系統(tǒng)將字母‘A’賦值給c1,空格賦值給c2,字母‘B’賦值給c3。
點擊加載更多評論>>