當前位置:首頁 » 文件管理 » 程序設計字元讀入緩存區

程序設計字元讀入緩存區

發布時間: 2023-01-31 18:33:13

A. 4.編程序:用getchar函數讀入兩個字元給c1,c2,然後分別用putchar和printf函數

#include

int
main()
{char
c1,c2;
c1=getchar();
putchar(c1);
scanf("%c",&c2);
printf("%c\n",c2);
return
0;
}
我們平時從鍵盤輸入的字元都會存到緩存區裡面,包括回車字元,getchar是從緩存區讀入一個字元,用法是ch=getchar();
scanf並不針對於單個的字元處理,還可以讀入數據和字元串,且scanf("%c",&ch)等價於ch=getchar();
至於putchar(ch)則等價於printf("%c",ch);功能是輸出一個字元,要輸出的字元變數寫在括弧內,如果要輸出的是字元常量比如說感嘆號則要這樣:putchar('!');或printf("!");或printf("%c",'!');都相同。

B. 關於C語言的問題~ C語言程序設計(第四版)里說,在用鍵盤輸入信息時,這些字元先暫存在鍵盤的緩沖

用來接受回車的是ch, 它是一個變數不是數組, 而用來保存文件名的是一個字元數組.
C語言幾乎所有輸入的函數都是先檢查輸入緩沖區是否為空, 如果空, 就讓鍵盤輸入, 輸入的字元如果是回車符, 就結束輸入, 然後輸入的數據保存到輸入緩沖區(就包括那個回車符), 最後再從緩沖區中讀數據, 其中如果遇到非法字元, 結束讀取, 返回EOF. 如果遇到空白符(回車, 空格)就表示這個數據的結束.
例如:scanf("%d", &i);scanf("%d", &i);
先是輸入, 如果輸入了123\n
那麼, scanf在讀取123的時候, 是正常的, 然後讀取到\n, 它是空白符, 於是就結束輸入, 而這個空白符是沒會被刪除的, 它還在輸入緩沖區里.
然後後面還有一個要輸入的, 因為輸入緩沖區不為區, 所以直接讀取數據, 但是第一個讀到的數據就是空白符, 而後面也沒有數據了, 所以返回EOF. 這樣就會導致輸入錯誤.
所以一般來說scanf前面都會加一個空格如: scanf(" %d", &i);這樣那個空格就會和上一次輸入留下的回車符抵消.

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:713
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:976
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:686
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:837
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:745
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1085
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:314
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:194
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:882
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:840