我正在尝试逐行读取.csv文件
这是我的代码
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream fname;
fname.open("Inc_001.csv");
if (!fname) { cerr << "Error" << endl; return 1; }
string x, y;
while (fname.good()) {
getline(fname, x, ';');
getline(fname, y, '\n');
cout << x << y;
}
fname.close();
return 0;
}
这是我的.csv文件
0;0
0.1;0.01
0.2;0.04
0.3;0.09
0.5;0.25
0.7;0.49
1;1
但是每次我运行代码时,输出都是“错误”,而且我不知道要解决什么问题
答案 0 :(得分:2)
之所以总是收到该Error
消息是因为ifstream::open
无法按照您指定的路径打开文件。
查看您的屏幕快照,就好像您将CSV文件放置在解决方案的根目录中一样,归类为名为Source
的过滤器。
您可以通过更改Output
中的位置,然后将CSV文件放置在已配置的文件夹中来更改必须在其中放置可执行文件的Project > <your_project> Properties... > Linker > General > Output File
目录。
或者,您也可以将CSV文件放置在默认目标目录中,该目录应为<your_solution_name>\Debug\...
的形式,即已编译的二进制文件所在的位置。
答案 1 :(得分:0)
float num1, num2;
char c;
if (myfile.is_open())
{
while ( myfile >> num1 >> c >> num2 )
{
cout << << num1 << "," << num2;
}
myfile.close();
}