C語言scanf函式使用 s後使用 c無法賦值問題

2021-08-18 15:42:52 字數 880 閱讀 1085

使用scanf()時

%s %d %lf 等使用時,會從快取區中的讀取資料存入指定的字串或整數中,但當讀到' ' ,'\n'時就會結束。

但不會消耗掉' ','\n'。因此就不得不面對乙個問題,

#include

main()

當你輸入完第乙個字串k後,就會按下回車鍵輸入了乙個『\n』,而這個'\n'不會被消耗,但是%c又可以

接收'\n'這就致使下乙個字i無法賦值.若這個問題往往非常隱蔽難以發現,所以如果出現不賦值就直接

進行下一步操作的時候,可以檢查一下是否出現這種狀況。

那麼如何解決這個問題呢?

其實%s %d 此類符號是在函式中的佔位符,在最初使用scanf時,或許會出現一種狀況:

char k[10];

printf("k= ");

scanf("k=%s",k);

此時,我們就需要 『k= 』 +『需要的值』才能賦值。利用這個方法,我們就可以在快取區中已經存在乙個

『 』或『\n』的狀況,只需稍微修改乙個下**

char i;

char k[10];

printf("k= ");

scanf("%s",k);

printf("i= ");

scanf(" %c",&i);

在%c前加乙個空格 或者『\n』就可以越過這乙個上乙個**遺留下來『 』或'\n' ;

又或者char i;

char k[10];

printf("k= ");

scanf("%s",k);

getchar();

printf("i= ");

scanf("%c",&i);

使用getchar()消耗掉這個『\n』就可以正常輸入了。

C語言 scanf 函式

scanf 函式是用來從外部輸入裝置向計算機主機輸入資料的。scanf 函式的一般格式 案例 已知圓柱體的底半徑radius 1.5,高high 2.0,求其體積。main 案例 已知圓柱體的底半徑為radius,高為high,求其體積。功能 說明函式scanf 的格式及作用。main 程式執行結果...

C語言scanf函式

四 注意事項 編寫程式的主要目的就是為了處理資料。資料從 來?資料的 有很多種方式,如從磁碟檔案中讀取資料 從資料庫中讀取資料 從網頁中抓取資料等,還有一種原始的方式就是從鍵盤輸入資料。在c語言中,有三個函式可以從鍵盤獲得使用者輸入。getchar 輸入單個字元,儲存到字元變數中。gets 輸入一行...

C語言 scanf函式

1 scanf函式,是乙個標準的輸入函式 是乙個阻塞式的函式 當使用scanf的時候,程式會等待使用者輸入,如果不輸入內容,程式不再往下執行 作用 接收從鍵盤輸的的內容 2 使用格式 對比printf printf 格式控制字串 變數列表 scanf 格式控制字串 變數的 位址 列表 printf ...