我是绝对初学者,正在通过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;
}
答案 0 :(得分:0)
在类Unix系统上(至少在默认情况下),通过在行的开头键入Ctrl-D或通过键入Ctrl-D两次触发(如果您不在开头)来触发文件结束条件一条线。从这个问题的接受答案: Why do I need to type Ctrl-D twice to mark end-of-file?
答案 1 :(得分:0)