重讀C++ Primer 中以下代碼,發現不知道怎么結束輸入,一旦輸入Ctrl + c,程序結束。
#include <iostream>
int main()
{
int sum = 0, value;
while (std::cin >> value)
{
sum += value;
} // while(std::cin>>value)
std::cout << "Sum is " << sum << std::endl;
return 0;
}
C++ Primer中有詳細描述:
當我們使用istream對象作為條件,結果是測試流的狀態。如果流是有效的(也就是說,如果讀入下一個輸入是可能的)那么測試成功。遇到文件結束符(end-of-file)或遇到無效輸入時,如讀取了一個不是整數的值(針對上述代碼變量value所說),則istream對象是無效的。處於無效狀態的istream對象將導致條件失敗。
操作系統使用不同的值作為文件結束符。
windows系統下,Ctrl + z
Unix系統中,包括Mac OS-X,通常用 Ctrl + d