c中scanf和gets,puts混合例題的理解

2021-08-04 23:55:49 字數 409 閱讀 7068

c中scanf和gets,puts混合使用的理解;

例如:void main()

如果輸入是:aaa/enter/bbb/enter,會有怎樣的輸出?

答案是:

aaabbb

aaabbb

|但如何理解這樣的輸出呢?

其實是這樣的,首先輸入aaa 回車,scanf函式遇到回車自動結束接收結束,

則s1中存放aaa,之後回車操作符任然存留在鍵盤緩衝區,但到了get(s2),

它遇到鍵盤緩衝區的回車後,結束接收,並清空鍵盤緩衝區,之後遇到get(s3),

接收bbb,遇到回車,結束接收;

之後的puts(s1);puts(s2);puts(s3);,s1輸出aaa自帶回車,s2輸出為空

自帶回車換行,s3輸出bbb自帶回車到下一行;

談C中scanf陷阱

最近一直在看andrew koening寫的書籍,可以說學習c c 或者從事這方面的開發的人員非常值得一看的書籍,這裡我推薦看看 c陷阱與缺陷 與 c c 沉思錄 這裡先來看看 c陷阱與缺陷 一段 這麼精小的一段 看看執行結果將會是什麼?請看清楚c是字元變數。剛開始的時候,對他講的東西不是很明白,為...

c中scanf函式用法

初看scanf時,覺得還是蠻簡單的,但當深入學習後,才發現裡面有很多小細節值得我們去注意。首先,看看scanf的基本格式 scanf 格式化字串 位址表 scanf 函式返回成功賦值的資料項數,出錯時則返回eof。我們輸入的資料大體上可以分為幾個型別 格式化說明符 空白符 空白符包括 空格,製表符,...

C 輸入scanf 和輸出printf

scanf函式一般格式是 scanf 格式控制,輸出表列 printf函式的一般格式是 printf 格式控制,輸出表列 例3.4 用scanf和printf函式進行輸入和輸出。複製純文字新視窗 include using namespace std int main include using n...