您好,登錄后才能下訂單哦!
本篇文章為大家展示了C語言中輸入單個(gè)字符會(huì)屏蔽回車符如何解決,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
1、在scanf()中使用'\n'屏蔽回車符號(hào)。
scanf("%d\n",&n); //使用'\n'過濾回車
scanf("%c",&c);
2、在scanf()格式串最前面添加空格,屏蔽回車字符
scanf("%d",&n);
scanf(" %c",&c); //%c前面加空格,過濾回車
3、在接收字符前,使用getchar()來讀取一次回車符號(hào)
scanf("%d",&n); getchar(); //專門用來讀取上次輸入的回車符號(hào) scanf("%c",&c);
4、在接收字符前,使用fflush()清空輸入流中緩沖區(qū)中的內(nèi)容
scanf("%d",&n) fflush(stdin); //清空輸入流緩沖區(qū)的字符,注意必須引入#include <stdlib.h>頭文件 scanf("%c",&c);
好了,以后再也不用為這個(gè)問題煩惱了.....
補(bǔ)充知識(shí):C語言中使用scanf()對(duì)字符(串)進(jìn)行輸入的問題
1. 輸入字符串
#include<stdio.h> int main() { int a; char s1[100]; char s2[100]; scanf("%d", &a); scanf("%s", s1); scanf("%s", s2); printf("a = %d\n", a); printf("s1 = %s\n", s1); printf("s2 = %s\n", s2); return 0; }
輸入
2019 hello world
輸出
a = 2019 s1 = hello s2 = world
沒有問題,因?yàn)閟canf("%s")遇到換行符會(huì)自動(dòng)跳過
2.輸入字符
#include<stdio.h> int main() { int a; char s1; char s2; scanf("%d", &a); scanf("%c", &s1); scanf("%c", &s2); printf("a = %d\n", a); printf("s1 = %c\n", s1); printf("s2 = %c\n", s2); return 0; }
輸入
2019 A B
輸出
a = 2019 s1 = s2 = A
可以看到s1將2019后面的回車符'\n'吸收了,原因是scanf("%c")在讀取單個(gè)字符時(shí),空格和回車都被視為單個(gè)字符。
解決辦法
使用getchar()吸收掉多余的回車
#include<stdio.h> int main() { int a; char s1; char s2; scanf("%d", &a); getchar(); // 吸收"\n" scanf("%c", &s1); getchar(); // 吸收"\n" scanf("%c", &s2); printf("a = %d\n", a); printf("s1 = %c\n", s1); printf("s2 = %c\n", s2); return 0; }
在格式串中過濾掉回車
#include<stdio.h> int main() { int a; char s1; char s2; scanf("%d\n", &a); // 過濾掉回車 scanf("%c\n", &s1); scanf("%c", &s2); printf("a = %d\n", a); printf("s1 = %c\n", s1); printf("s2 = %c\n", s2); return 0; }
上述內(nèi)容就是C語言中輸入單個(gè)字符會(huì)屏蔽回車符如何解決,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。