流結束符Ctrl Z

2021-07-09 04:23:28 字數 793 閱讀 1976

int _tmain(int argc, _tchar* argv)

else

} for(list::iterator iter = slst.begin(); iter != slst.end(); ++iter)

cout << *iter << endl;

return 0;

在dos命令列模式下,隨意輸入幾個字串,「hello」, "world", "ni", "hao"輸入完畢後,輸入ctrl + z,然後輸入回車,再輸入ctrl + z,最後再輸入回車,提示輸入要刪除的字串,輸入「hao」後,並沒有刪除而是顯示hello world ni hao->  這是什麼原因?

經過蒐集資料,原來輸入流結束的條件就是在

行首鍵入 ctrl+z 並回車,所以第一次輸入的ctrl+z雖然也在回車之前,但是沒有在行首,所以並不是輸入流的結束符,而是被當做最後乙個字串的一部分,顯示為hao->,所以沒有能夠刪除掉字串"hao"。

正確的做法是,先輸入

「hello」, "world", "ni", "hao",然後回車(這個回車的作用是使後面輸入的ctrl+z處在下一行的行首位置),輸入

ctrl+ z後再輸入乙個回車(這個回車的作用是告訴cmd.exe流輸入結束了)。這樣就可以了。

輸入緩衝是行緩衝。當從鍵盤上輸入一串字元並按回車後,這些字元會首先被送到輸入緩衝區中儲存。每當按下回車鍵後,cin.get() 就會檢測 輸入緩衝區中是否有了可讀的資料。cin.get() 還會對鍵盤上是否有作為流結束標誌的 ctrl+z 或者 ctrl+d 鍵 按下作出檢查。

檔案結束符

初學c 一道例題 使用者輸入一組數,在輸出資訊中顯示共輸入多少個負數。include using namespace std int main cout 當使用istream物件作為條件,結果是測試流的狀態。如果流是有效的,也就是說,如果讀入下乙個輸入是可能的,那麼測試成功。遇到檔案結束符或遇到無效...

C 檔案結束符

問題描述 windows下 int main string str while cin str cout n end 控制台輸入多個字串後,輸入檔案結束符crtl z,並未使while迴圈結束,該如何跳出while迴圈?解決方法 方法1 回車 ctrl z 回車方法2 改 設定自己的檔案結束符 st...

檔案結束符 End Of File

先看下面的程式 include includeusing namespace std int main ofstream outfile test.txt outfile abcdefg outfile.close char c ifstream infile test.txt while infi...