tft每日頭條

 > 生活

 > c語言的scanf怎麼用

c語言的scanf怎麼用

生活 更新时间:2025-01-09 21:41:39

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函數中的用法差不多。

c語言的scanf怎麼用(C程序設計語言中的)1

c語言的scanf怎麼用(C程序設計語言中的)2

這兩個表是為了備查用的,不必死記,并始時會用比較簡單的形式輸入數據即可

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,後面幾個字符沒有被讀入。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved