我是絕對初學者通過Stroustrup的「編程原則和實踐」的書。文件結束輸入不工作
在第4章中介紹了文件結束輸入;在前面的代碼片段中使用的Ctrl-D。我現在正在處理的代碼是這個簡單的向量示例。
我認爲Ctrl-D應該退出range-for循環,然後cout計算,但是這不起作用。我只能通過Ctrl-Z(已停止),Ctrl-C或|來退出程序,並且看不到任何結果(管道)符號,其他任何東西都只是延續了輸入循環。
我在linux上使用終端仿真器(終止符)來編寫,運行和編譯。我已經在Code :: Blocks中嘗試了相同的代碼,輸出完全相同。
請;我怎麼能擺脫輸入循環?
#include "std_lib_facilities.h" //provided PPP header file
int main()
{
vector<double>temps;
for (double temp; cin >> temp;) //get stuck in here
temps.push_back(temp);
double sum=0; //want to get to here
for (double x : temps) sum += x;
cout << "Average temperature: " << sum/temps.size() << endl;
sort(temps.begin(),temps.end());
cout << "Median temperature: " << temps[temps.size()/2] << endl;
}
輸入你想要的一切後按Ctrl + D – GMichael
你有沒有嘗試與另一個終端模擬器? – perencia
Ctrl + D不起作用。我也在Xterm和xfce4的終端中嘗試了這一點,結果相同。我甚至嘗試了不同的鍵盤來確認我不會發瘋;相同的結果。 –