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程式必須擁有。一般語句結束使用...