文件结束输入不起作用
End Of File input not working
我是一个绝对的初学者,正在阅读Stroustrup的"编程原理和实践"一书。
在第 4 章中,它介绍了文件末尾输入;Ctrl-D 适用于以前的代码片段。我现在正在处理的代码是这个简单的矢量示例。
我相信 Ctrl-D 应该退出 range-for 循环,然后进行计算,但这不起作用。我只能退出程序,并且看不到任何结果,通过 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;
}
在类 Unix 系统上(至少默认情况下),通过在行首键入 Ctrl-D 或键入 Ctrl-D 两次(如果不在行首)来触发文件结束条件。从这个问题的公认答案:为什么需要键入两次 Ctrl-D 来标记文件结尾?
你似乎没有脱离for循环。 要么你可以定义你正在获取的值的安普特,以便它循环多次,要么你说while(input!=X),这样当你给出一个X值时,它就会离开循环。并检查 for 应该与 3 个语句一起使用,而不是 2 个语句。祝你好运
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- Windows.h 输入在函数之外不起作用
- 为什么给定的代码不适用于所有测试用例?为什么当输入为 7786 时它不起作用?
- 如果我更改函数输入,我的递归不起作用?
- 为什么用于获取有关名称的输入的语法不起作用?
- C++ 对象数组字符串输入在控制台上不起作用
- cin.fail 在输入数字和字母时不起作用
- 为什么当我输入字符时,这个特定的 cin.get() 语句在C++中不起作用?
- 特殊键输入不起作用(输入,backspace,tab等)
- 类中的重载函数(Students())是输出输入的信息,但它不起作用
- 为什么在参数输入之前将计算放置在代码中时,计算不起作用
- 使用系统命令时发送输入不起作用
- 检查用户输入是否正确的函数不起作用
- 功能调用不起作用,但控制台仍允许输入
- std :: getline(输入,d.info)不起作用
- cin.clear() 不起作用 - 不读取输入
- ios_base::sync_with_stdio(false) 在来自标准输入的两个输入之间不起作用
- 输入在C 中不起作用
- 斯坎f 输入不起作用
- 文件结束输入不起作用