getchar()
getchar的定義:
int getchar(void)
返回類型是int值,所以返回的是字符的ASCII碼
參數列表中是void,所以不必在括號中傳參數
如果getchar讀取失敗,就會返回EOF
getchar()的一個重要機制
在getchar函數的作用與鍵盤間,存在一個輸入緩沖區,從鍵盤輸入的內容會存在這個緩沖中,接下來getchar函數會從緩沖區中取走內容
因為getchar是對于字符進行操作,所以每次執行getchar都會取走輸入緩沖區中一個字符
并且getchar還會取走回車也就是\\n與空格
我們用下面的代碼進行對輸入緩沖區機制的測試:
int main()
{
char ch = 0;
while ((ch = getchar()) != EOF)
{
putchar(ch);
}
return 0;
}
1
2
3
4
5
6
7
8
9
當輸入一個字符a時,同時我們會按下回車,此時輸入緩沖區中就有兩個字符:a\\n
首先,getchar()會先取走字符a,然后通過putchar打印出來
接著循環,getchar()取走字符\\n,然后通過putchar打印出來,所以在輸出中光標不在輸出的a的后面,而在a的下一行
接著,輸入緩沖區中以無內容,getchar()就會讀到EOF,退出循環
還可以用以下代碼更進一步驗證getchar()對于回車的讀取:
int main()
{
int i = 0;
char ch = 0;
while ((ch = getchar()) != EOF)
{
putchar(ch);
i++;
}
printf("%d", i);
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
輸入字符a和b,這里實際上是輸入a后,按一次回車,輸入b后,按一次回車,所以輸入緩沖區中的內容為:a\\nb\\n,所以getchar()會讀取四次,所以i的值為會是4
原文鏈接:https://blog.csdn.net/weixin_64116522/article/details/127956631
-
函數
+關注
關注
3文章
4327瀏覽量
62573 -
代碼
+關注
關注
30文章
4779瀏覽量
68525
發布評論請先 登錄
相關推薦
評論