无法逐行读取.csv文件

时间:2019-12-24 14:12:31

标签: c++ visual-studio csv fstream

我正在尝试逐行读取.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

但是每次我运行代码时,输​​出都是“错误”,而且我不知道要解决什么问题

This is a screenshot of my solution

2 个答案:

答案 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();
}