c語言關於while(getcharn)continue問題

2021-04-29 18:10:33 字數 2713 閱讀 6453

1樓:仙亦佛

正因為getchar接收了回車,下面的continue才不會執行,而是執行下面的printf,再回到外while執行程式,此時沒回車了,所以才可以再次輸入。

c語言,清空輸入行的語句 while(getchar()!='\n') continue;

2樓:天雲一號

遇到回車就跳出while迴圈,執行後面的語句

3樓:

一行都是以換行符結尾,也就是'\n',這個程式遇到換行符就會終止迴圈,不是換行符就一直迴圈下去,所以就能把一行清空了。那個continue可以去掉。

4樓:匿名使用者

用於清空鍵盤緩衝區的

求大神解釋c語言問題。 劃斜槓的語句 while(getchar()!='\n') continue;是什麼意思?能起到什麼作用呢?

5樓:落葉l無情

迴圈直到接收到換行,迴圈本身不做其他事情,作用就是接收掉由上一句的scanf帶來的換行符,防止while迴圈中的gets接收到錯誤的換行符

6樓:精靈譜尼

continue就是跳過本次迴圈中剩下的內容,直接進入下一輪迴圈

while (getchar()!= '\n')continue;的問題

7樓:匿名使用者

樓主要理解getchar()一次只能識別一個字元哦~

while (getchar()!= '\n')continue;這個語句是為了應對使用者一次性輸入內多個數字容/字母的。比如使用者輸入的是「777(回車)」,第一個7被while (getchar()!

= 'y') 識別,而後面的兩個7都是被while (getchar()!= '\n')過濾掉的,如果你把這個while去掉,那麼一次性輸入多個數字/字母,就會一次列印多個「uh ....is your number ***?

」理解了這個,連續輸入兩次回車的現象就不會被認為不正常啦,其實是正常的~

c語言 while (getchar() != '\n')為什麼可以過跳過回車?

8樓:金色潛鳥

(1)分清鍵盤緩衝區 和 輸入流資料緩衝區。

當我們在鍵盤上按鍵時,按入的 一個個 鍵值都 在 鍵盤緩衝區 裡,只有當 新行鍵 到來時,

按入的 這些 鍵值(字元們,和新行鍵) 才從 鍵盤緩衝區 送入 輸入流資料緩衝區。

(2)getchar() 是到輸入流資料緩衝區去讀取一個字元,

當 輸入流資料緩衝區 沒有資料時,讀語句 就等待,

當 輸入流資料緩衝區 有 資料 是,就讀 最先 進來的那個字元,讀一個,就從輸入流資料緩衝區裡清除掉這個字元。

getchar() != '\n' 是 進一步 判斷 剛 讀入的這個字元 是不是新行鍵。

(3)while (getchar() != '\n' ) continue;

與 while (getchar() != '\n' ) 空語句 ; 作用 相同,就是 到 輸入流資料緩衝區去讀取一個一個字元,只要讀到的 不是 '\n', 就繼續讀 (讀一個清除一個),直到 讀到 '\n'。其作用等於 「清除 輸入流資料緩衝區」。

(4) 輸入流資料緩衝區 被 清除後,程式 回到

while (getchar() != 'y' );

這時,輸入流資料緩衝區 沒東西。等待 鍵盤緩衝區 把東西 送過來。

鍵盤緩衝區 等待 使用者 拍入 字元,並等待 '\n' 到來,

一旦 '\n' 到來, 鍵盤緩衝區 裡的內容 才送到 輸入流資料緩衝區。

輸入流裡若有 'y', 就 結束 這個 while 迴圈。

否則 while (getchar() != '\n' ) 就會 「清除 輸入流資料緩衝區」,回到等待 'y' 的 迴圈。

9樓:匿名使用者

這段**是跳過所有輸入的字元,直到遇到\n就跳出內層迴圈,去進行是否y的判斷

因為getchar是以回車結束輸入

所以它判斷完是否是y之後 需要過濾掉後面所有的字元,包括\n再開始錄入判斷

c語言問題 char c=0{ while(c!='\n'){ c=getchar();

10樓:

!= 是不等於

while(c!='\n')

當c不等於換行,就一直執行邏輯語句

11樓:天雨下凡

while(c!='\n')就是當c的內容不是'\n'時,就執行迴圈,而'\n'是轉義符,代表換行的意思,而要換行,就是按回車鍵。!=是不等於的意思

c語言程式設計中while (getchar()!='\n')在語句中起到什麼作用?

12樓:舊時的煙雨

表示如果沒有讀到換行符(也就是回車鍵),那麼繼續迴圈。

c語言 while((c=getchar())!='\n')與while(c=getchar()!='\n')的區別

13樓:匿名使用者

因為賦值符的優先順序最低,

所以前面那個c獲取的是輸入的字元,

後面那個得到的是getchar()!='\n'表示式判斷結果。

關於c語言問題,關於C語言的問題。

include int main 網上到處都是資料,你多查點資料在寫程式可以麼。標頭檔案都寫錯了。你這 想表達什麼。c語言中關於agrc和agrv 的問題 用命令列開啟到你的 exe檔案的目錄,exe就是你的。c檔案編譯後生成的可執行檔案,然後在該目錄下直接執行,比如編譯後生成的是 你就直接 hel...

關於C語言memcpy的問題,關於c語言陣列的memcpy的一個問題

兩個問題 1 readfile引數用整數指標並不能將分配的記憶體地址帶出該函式,應該用指標的指標才能帶出 2 沒有地方等程式執行完,否則除非在命令列狀態,否則看不到資料。修改如下 void readfile int pa pa int calloc 3,sizeof int memcpy pa,a,...

關於C語言的問題,關於c語言的問題?

c語言的預處理指令是在編譯之前進行處理,把通過預處理的內建功能對一個資源進行等價替換,最常見的預處理有 檔案包含,條件編譯 佈局控制和巨集替換4種,並不是告訴計算機我要做什麼。c語言也可以呼叫程式設計師自已定義的函式,並不是只能呼叫計算機函式。主函式是程式的入口,每個c程式必須擁有。一般語句結束使用...