gets函數(shù)一次只可讀取一個字符?
C語言中getchar()是帶緩存輸入函數(shù),且執(zhí)行一次getchar()函數(shù),只能讀到一個字符。但,用戶卻可以一次輸入n多個字符,這些字符會先存儲到輸入緩存中,在用戶輸入回車后,getchar()才去緩存中讀取數(shù)據(jù)。
如果此時(回車后),只是進行一次getchar()讀入,則只能得到第一個輸入字符,如果沒有后續(xù)的讀入操作,則滯留在緩存中的數(shù)據(jù)會在程序結(jié)束時被丟棄。
如果代碼中,是循環(huán)進行getchar()讀入,則會依次讀到所有的字符,直到循環(huán)條件結(jié)束。如:
以下測試程序,供編程愛好者研究:
#include <windows.h>
#include <stdio.h>
void main(void)
{
char ch;
while( (ch=getchar())!='\n' ) //輸入字符,直到回車結(jié)束(測試人員可在輸入幾個字符后,停幾秒,再按回車,就可以驗證”回車后才讀取緩存“這句話了。)
{
printf("your input: %c, sleep 1s\n", ch );
Sleep(1000); //暫停1秒
}
}
上一篇怎么推銷火鍋食材
下一篇國人買車好多說看銷量