文本結束符:
Linux /UNIX --> 換行符('\n');
MS-DOS --> 回車符合換行符的結合。
例:
func()
{
char c = getchar();
}
func函數被調用時,Linux系統會暫存用戶輸入的內容,知道用戶按下回車鍵。由於Linux系統以換行符('\n')作為文本結束符的,所以用戶按下回車鍵時,系統中實際上是緩存了2個字符:用戶輸入字符 + 換行符,當用戶第二次調用func函數時,最先得到的是第一次調用時緩存下來的換行符,而不是用戶第二調用時輸入的字符。
解決方法:忽略額外的換行符
do{
char c = getchar();
}while( c == '\n');