用getchar 函式輸入資料存在的問題

2021-10-03 14:09:04 字數 677 閱讀 9529

首先,用getchar()函式的時候有兩大特徵:

這就需要講一講行緩衝(line-buffer)輸入方式:

1、將輸入字元先放入輸入緩衝佇列中,再從緩衝佇列讀取字元 

2、直到鍵入回車符或檔案結束符eof時,程式才認為輸入結束

3、一行輸入結束,getchar()才開始從輸入緩衝佇列讀取字元, 前面函式沒讀走的資料仍在緩衝佇列中,將被下乙個函式(getchar())讀取

為什麼getchar()要讀到乙個回車符或檔案結束符eof才 進行一次處理操作呢?

或者說為什麼getchar()以行(而非字元)為單位讀取字元呢?

還有乙個需要注意的問題:

有時getchar()也可能返回負值 :

若在unix/linux下遇到組合鍵ctrl+d(windows下為ctrl+z) ,則返回eof(一般定義為-1)
因為getchar()函式返回終端輸入的第乙個字元 ascii碼值(通常非負),所以通常這樣定義:

int ch; 

ch =

getchar()

;

用getchar和 C輸入字元型資料

標籤 空格分隔 c 雙學位高階語言程式設計 c輸入輸出 getchar函式的輸入模式,是以回車鍵為結束標誌,將回車之前的所有資料都放入緩衝區中,每進行一次賦值,就呼叫緩衝區內的乙個字元。如果輸入字元比賦值字元少,那會把回車也算作字元。鍵盤上的一切輸入內容,包括空格回車,都能被輸入其中。而用 c輸入資...

用getchar和 C輸入字元型資料

標籤 空格分隔 c 雙學位高階語言程式設計 c輸入輸出 getchar函式的輸入模式,是以回車鍵為結束標誌,將回車之前的所有資料都放入緩衝區中,每進行一次賦值,就呼叫緩衝區內的乙個字元。如果輸入字元比賦值字元少,那會把回車也算作字元。鍵盤上的一切輸入內容,包括空格回車,都能被輸入其中。而用 c輸入資...

用getchar和putchar輸入輸出字元

用getchar函式讀入兩個字元給c1,c2,然後用putchar函式輸出這兩個字元。include stdafx.h include using namespace std int tmain int argc,tchar argv 如果要輸出這兩個字元的ascii碼,應如何處理?include ...