C++ 输入到 vector<float> 而不以非 float 结尾

标签 c++ vector

我正在做一个项目,我需要输入 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/

相关文章:

c++ - OpenAl mp3 循环不工作

c++ - Link Error : xxx is already defined in *****.LIB::究竟是什么错误?

pointers - vector <list <T >>是否保证元素地址保持不变?

math - FastICA和盲信号分离数学题

c++ - 如何将元素添加到 vector 的字符串位置

c++ - gcc 使用 c++11 标准,即使 98 明确指定

c++ - (GTK :4783): Gtk-CRITICAL **: gtk_image_set_from_pixbuf: assertion 'GTK_IS_IMAGE (image)' failed

c++ - 从指针 vector 中安全删除

c++ - 在 C++ 中获取二维 vector 的行 vector

c++ - 将 boost 与 MinGW 一起使用时对 WinMain@16 的 undefined reference