C getchar 在C程式中的妙用!

2022-03-31 06:13:48 字數 1154 閱讀 2817

getchar()在c程式中的功能是接收乙個字元,當我們在連續輸入字元的時候getchar()會給你意想不到的效果。下面是net小伙做的一些測試:

首先看下面的這個程式:

1 #include2 #include3

int main(void)4

執行結果可想而知:

你能猜到執行結果是什麼嗎?

為什麼會顯示這樣的結果?你猜到是什麼原因了嗎?

我們再來看一下源**:程式連續接收了三個字元,在c中enter鍵代表乙個換行符,所以當輸入完a的值『q』之後按下enter鍵,換行符立馬被字元b接收了,然後程式再向下走,輸入c的值『w』。結果就會按順序顯示a,b,c的值,我們已經知道a='q',b='\n',c='w';所以結果就會顯示兩行。

如果我們加入getchar()會有什麼結果呢?

我們再來看一下改進的程式:

1 #include2 #include3

int main(void)4

顯示結果如下:

現在為什麼會正常顯示我們想要的結果呢?原因就是getchar()把enter鍵所表示的字元接收了,所以就會達到想要的效果了。

到現在你應該明白為什麼會出現這種情況了吧!無非就是輸入的規範問題,如果我們執行第二個程式,用另一種方法輸入看看會是神馬效果:

看到沒?也可以獲取想要的結果,但是程式並不是這麼美觀了,為什麼會出現這種效果呢?

因為編譯器規定輸入的時候並不是立即回顯,而是存到乙個緩衝區裡面。當遇到換行字元會釋放緩衝區的資料,並清空緩衝區。

scanf()在讀取數字時會跳過空格、製表符和換行符!

C getchar 在C程式中的妙用!

getchar 在c程式中的功能是接收乙個字元,當我們在連續輸入字元的時候getchar 會給你意想不到的效果。下面是net小伙做的一些測試 首先看下面的這個程式 1 include2 include3 int main void 4 執行結果可想而知 你能猜到執行結果是什麼嗎?為什麼會顯示這樣的結...

c語言簡單程式妙解

1.輸入乙個字串,要求按如圖所示格式輸出 題目分析 看到題目,一開始的想法是利用巢狀for迴圈一行一行列印,其實這樣實現起來比較麻煩 不妨利用字元陣列兩邊賦值來實現 define crt secure no warnings 1 include includeint main system paus...

在C 程式中嵌入Perl

perl 庫一般在這樣的資料夾下 usr local lib perl5 your architecture here core 可以這樣得到它的位置 perl mconfig e print config 編譯的時候要這樣 gcc o2 dbool char dhas bool i usr loc...