1. scanf函數的一般形式:
scanf(格式控制,地址表列):
“格式控制”的含義同printf函數。“地址表列”是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址。
2. scanf函數中的格式聲明
與printf函數中的格式聲明相似,以%開始,以一個格式字符結束,中間可以插入附加的字符。
例3.5中的scanf函數是比較簡單的。可以把scanf函數改寫成以下形式:
scanf( a=%f,b=%f,c=%f”,&a,&b,8c);
在格式字符串中除了有格式聲明%f以外,還有一些普通字符(有“a=”“b=”“c=”和“,”)。
表3.8和表3.9列出scanf函數所用的格式字符和附加字符。它們的用法和printf函數中的用法差不多。
這兩個表是為了備查用的,不必死記,并始時會用比較簡單的形式輸入數據即可
3.使用scanf函數時應注意的問題
(1) scanf函數中的格式控制后面應當是變量地址,而不是變量名。例如,若。和b為整型變量,如果寫成
scanf(%f%f%f”,a,b,c);
是不對的。應將“a,b,c”改為“&.a,&.b,&c”。許多初學者常犯此錯誤。
(2)如果在格式控制字符串中除了格式聲明以外還有其他字符,則在輸入數據時在對應的位置上應輸入與這些字符相同的字符。如果有
scanf( a=%f,b=%f,c=%f”,&a,&b,8c);
在輸入數據時,應在對應的位置上輸入同樣的字符。即輸入
a=1,b=3,c=2 (注意輸入的內容)
如果輸入
132
就錯了。因為系統會把它和scanf函數中的格式字符串逐個字符對照檢查的,只是在%f的位置上代以一個浮點數。
注意:在“a=1”的后面輸入一個逗號,它與scanf函數中的“格式控制”中的運號對應。如果輸入時不用逗號而用空格或其他字符是不對的。
(3)在用“%c”格式聲明輸入字符時,空格字符和“轉義字符”中的字符都作為有效字符輸入,例如:
scanf("%c%c%c",&.c1,&c2,&c3);
在執行此函數時應該連續輸入3個字符,中間不要有空格。如:
abc? (字符間沒有空格)
若在兩個字符間插入空格就不對了。如:
a b c
系統會把第1個字符'a'送給cl;第2個字符是空格字符,送給c2;第3個字符‘b'送給c3。而并不是把'a’送給cl,把'b'送給c2,把'c'送給c3。
提示:輸入數值時,在兩個數值之間需要插入空格(或其他分隔符),以使系統能區分兩個數值。在連續輸入字符時,在兩個字符之間不要插入空格或其他分隔符(除非在scanf函數中的格式字符串中有普通字符,這時在輸入數據時要在原位置插入這些字符),系統能區分兩個字符。
(4) 在輸入數值數據時,如輸入空格、回車、Tab鍵或遇非法字符(不屬于數值的字符),認為該數據結束。例如:
scanf(”%d%c%f",&a,&b,&.c);
若輸入
1234a 1230.26
ab c
第1個數據對應%d格式,在輸入1234之后遇字符'a',因此系統認為數值1234后已沒有數字了,第1個數據應到此結束,就把1234送給變量a。把其后的字符'a'送給字符變量b,由于%c只要求輸入一個字符,系統判定該字符已輸入結束,因此輸入字符a之后不需要加空格。字符’a'后面的數值應送給變量c。如果由于疏忽把1230.26錯打成1230.26,由于123后面出現字母o,就認為該數值數據到此結束,將123送給變量c,后面幾個字符沒有被讀入。
本文發布于:2023-02-28 20:14:00,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/167766462779496.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:c語言scanf(c語言scanf輸入格式).doc
本文 PDF 下載地址:c語言scanf(c語言scanf輸入格式).pdf
| 留言與評論(共有 0 條評論) |