微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的c ++代码无法读取csv文件每一行中的第一个元素?

如何解决为什么我的c ++代码无法读取csv文件每一行中的第一个元素?

我正在尝试读取包含以下内容的csv文件

1.00E + 00,0.00E + 00,5.70E-01

2.00E + 00,5.00E-04,5.70E-01

3.00E + 00,1.00E-03,5.70E-01

但是,仅读取每行的第二个和第三个元素并将其存储到我将值传递给它们的数组中。我找不到代码有什么问题。如果我删除while语句并重复它们下面的行n次,则可以正常工作。有人对此有解决办法吗?在while条件语句中使用fin.good()感到厌倦,并且不起作用。

    #include <iostream>
    #include <string.h>
    #include <fstream>
    #include <iomanip>
    #include <vector>

    using namespace std;

    int main()
    {
    string xcord;
    string ycord;
    string mole;
    double m[100],tx[100],ty[100];
    int i,k;
    k = 0;

    fstream fin;
    fin.open("argon");

    while(!fin.eof())
    {
    getline(fin,xcord,',');
    getline(fin,ycord,mole,'\n');
    tx[k] = stod(xcord);
    ty[k] = stod(ycord);
    m[k] = stod(mole);
    k++;
    }

    for(i=0;i<k;i++)
    cout<<xcord<<"\t"<<ycord<<"\t"<<mole<<"\n";
    return 0;
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。