C ++读取文件和写入变量时出现未处理的异常 - getline错误?

时间:2017-03-07 03:08:14

标签: c++ visual-studio-2013 unhandled-exception

这里我只想将输入文件数据写入我的类变量。类变量是公共的,并作为公共变量。互联网上有类似的主题,但花了几个小时后,我仍然无法修复错误。如果我改为写((myfile>> map.at(i).x_p>> map.at(i).f)),那就没问题了,但那是不可取的。我的文件Book1.csv列出如下:

RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)$
RewriteRule ^ https://www.%2%{REQUEST_URI} [NE,L,R]

对于每个对象,我想编写2个变量,然后在Visual Studio 2013 Express上编写代码。 我很感激任何提示和暗示。

这是我的代码。

9, 2.25 
7, 3
5, 3
3, 3
1, 2.25

}

1 个答案:

答案 0 :(得分:0)

代码成功读取了五行。然后它尝试读取第六个。如果getline没有抛出异常试图进入五元素的第六个元素at(i),那么第六个vector会从文件末尾退回,失败并退出循环} string将可能的第六行放入。

可能的解决方案:

while (i < map.size() && 
       getline(myfile, map.at(i).x_p, ',') && 
       getline(myfile, map.at(i).f)) ) 

还可以摆脱过早结束的不良行为的脆弱性。