我正在做一个项目,我需要输入 float 并将它们分配给一个 vector ,我这样做是这样的:
//Input to temporary float
while (cin >> input)
{
//Assign temporary float to vector<float>
a.math_grades.push_back(input);
}
这行得通,但要结束 while 循环,我必须输入一个字母。我怎样才能输入一个 vector 并能够通过简单地按下 enter 来结束输入?
提前致谢! :D
-- 康纳
最佳答案
假设您想要用空行指示列表的结尾,以便您可以继续输入其他数据,那么文件结尾指示符不会有太大帮助。
在这种情况下,您应该使用 std::getline
一次读取一行,在出现错误或空字符串时结束循环。在循环内,您会将每个非空字符串转换为 float 。 boost::lexical_cast
是后一种操作的不错选择,strtof
也是。
关于C++ 输入到 vector<float> 而不以非 float 结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24113744/