用scanf輸入字元型資料時,輸入的格式要注意什麼

2022-02-18 14:50:41 字數 3047 閱讀 2078

1樓:匿名使用者

輸入資料間用空格還是逗號要和scanf函式裡的控制格式一致。

2樓:匿名使用者

單個字元用%c,字串用%s,同時字串不能加&符號。

c語言中用scanf函式輸入字元時,為什麼要在輸入控制符%c前面加空格?用scanf還有哪些要注意?

3樓:愛佳佳的恐龍

如果scanf中%d是連著寫的如「%d%d%d」,在輸入資料時,資料之間不可以用逗號分隔,只能用空白字元(空格或tab鍵或者回車鍵)分隔。

「2 (空格)3(tab) 4」 或 「2(tab)3(回車)4」等。若是「%d,%d,%d」,則在輸入資料時需要加「,」,如「2,3,4」。

比如scanf(" %c" ,&c);

你輸入了' a'(a前面有個空格),a就能被c接受。但控制符前如果沒空格,那c就接受了空格,明白了沒?這個可以防止誤操作,忽略空格輸入,接受第一個非空格輸入。

4樓:黑白say晚安

加空格遮蔽了空白字元。

%c前沒空格,scanf()將讀取標準輸入流中的第一個字元,%c前有空格,scanf()則讀取標準輸入流中第一個非空白字元。

使用scanf函式時應該注意的問題:

scan:掃描       f :format,格式1、整數和小數分別使用使用控制符%d %lf 表示(float除外,用%f)。

2、引數前面使用&符號,&號前要空格。

3、scanf輸入語句中替換符後不能加空格,也不能加\n。

4、scanf()中的變數必須使用地址。

5、scanf()的格式控制串可以使用空白字元或其它非空白字元,使用空白字元會使scanf()函式在讀操作中略去輸入中的一個或多個空白字元。使用非空白字元會使scanf()函式在讀入時剔除掉與這個非空白字元相同的字元。

6、在用"%c"輸入時,空格和「轉義字元」均作為有效字元。

5樓:西西哩的小馬甲

空格確實不是必須的,但有了空格就可以忽略你輸入的空格。

例如:scanf(" %c" ,&c),你輸入了' a'(a前面有個空格),a就能被c接受。

但控制符前如果沒空格,那c就接受了空格,這個可以防止誤操作,忽略空格輸入,接受第一個非空格輸入。

注意事項:

對於scanf()而言,%c是個較為特殊的說明符。 %c前沒空格,scanf()將讀取標準輸入流中的第一個字元,%c前有空格,scanf()則讀取標準輸入流中第一個非空白字元,遮蔽了空白字元。

6樓:圈圈叉叉叉叉圈

這絕對不是為了美觀,1樓不要誤人子弟。

空格確實不是必須的,但有了空格就可以忽略你輸入的空格,懂我的意思嗎?

比如scanf(" %c" ,&c);

你輸入了' a'(a前面有個空格),a就能被c接受。但控制符前如果沒空格,那c就接受了空格,明白了沒?這個可以防止誤操作,忽略空格輸入,接受第一個非空格輸入!

7樓:夏天很冷

空格不是必須的,scanf("%c %c",a,b)只是提示在輸入時兩個字元必須有空格間開。如果是scanf("%c%c",a,b)那沒兩個輸入字元不要有空格,不過程式設計時最好加上空格,這算一個書寫規範吧,要不然如果你scanf("%s%s",a,b)系統可能區分不了你的字串何時結束。

8樓:湮魂

不是必須加空格,這並不能防止誤輸入的,這種**寫出來,用的人肯定只能是熟知**如何編寫的人,有無空格分隔使用者會根據其格式使用,個人感覺就是為了能讓別人看清楚

9樓:我要度百

空格不是必須的吧,我們是感覺看起來美觀一些而加入的呀

c語言,用scanf格式輸入時,對輸入的資料格式有什莫要求麼?如兩個資料之間用一個或多個空格間隔

10樓:風若遠去何人留

在scanf格式字串中 指定分隔符

比如要用逗號分隔,那就寫逗號

scanf("%d,%d",&a,&b);

如果要用空格分隔 那麼可以不寫分隔符 直接scanf("%d%d",&a,&b);

11樓:

本來scanf就是按照你輸入的格式來讀取的,比如1,空格空格2就應該寫成"%d, %d"

12樓:匿名使用者

1.scanf函式的一般形式 scanf(格式控制,地址表列) int scanf(char *format[,argument,...]); 「格式控制」的含義同printf函式;「地址表列」是由若干個地址組成的表列,可以是變數的地址,或字串首地址。

scanf()函式返回成功賦值的資料項數,出錯時則返回eof。 例題 scanf函式輸入資料。 #include void main() 格式字元 說明 %a 讀入一個浮點值(僅c99有效) %a 同上 %c 讀入一個字元 %d 讀入十進位制整數 %i 讀入十進位制,八進位制,十六進位制整數 %o 讀入八進位制整數 %x 讀入十六進位制整數 %x 同上 %c 讀入一個字元 %s 讀入一個字串 %f 讀入一個浮點數 %f 同上 %e 同上 %e 同上 %g 同上 %g 同上 %p 讀入一個指標 %u 讀入一個無符號十進位制整數 %n 至此已讀入值的等價字元數 % 掃描字符集合 %% 讀%符號 附加格式說明字元表修飾符 說明l/l 長度修飾符 輸入"長"資料 h 長度修飾符 輸入"短"資料 w 整型常數 指定輸入資料所佔寬度 * 星號 空讀一個資料 hh,ll同上h,l但僅對c99有效。

(b) 空白字元空白字元會使scanf()函式在讀操作中略去輸入中的一個或多個空白字元,空白符可以是space,tab,newline等等,直到第一個非空白符出現為止。(c) 非空白字元一個非空白字元會使scanf()函式在讀入時剔除掉與這個非空白字元相同的字元。

13樓:陽光的雷咩咩

順序、型別、長度、個數都要與前面的格式符一致

14樓:匿名使用者

scanf格式化遇到空格是串尾

15樓:hi塵封boy橘子

買本書看看吧,c語言程式設計教程。朱寧華第三版。這是我用的。

從鍵盤上輸入字元型資料,若輸入數字字元

scanf需要以一個回車結束輸入,那麼題目要求的輸入一個字元型資料的要求是否滿足,存疑問。include main 從鍵盤輸入一個字元 若該字元是英文字母是則輸入對應的ascii碼 10 include int main int argc,char argv int s s getchar if s...

怎樣用c輸入多個字串並統計出字串的個數

include include using namespace std int main int count 0 string str while cin str count cout 輸出輸入bai 字串的個數,du按ctrl z停止zhi輸入 ctrl z相當於dao輸入一個eof,來表示 專輸...

這些英文字型是怎麼做的?用什麼輸入法

曾經看過一篇帖子說方法的,設計師先手繪,定稿以後再拿到電腦上用軟體繪製出來,調校細節,轉成字型檔案型別,釋出 英文的較簡單,中文的想想就知道有多複雜了 使用中文輸入法,怎麼打出來的都是英文字母!5 造成的,解決方法為 1 首先我們在電腦桌面右下角,滑鼠點選一下輸入法切換按鈕。2 之後在彈出來的選項中...