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

getline 没有得到第一个令牌

如何解决getline 没有得到第一个令牌

我正在尝试读取一个 CSV 文件,问题是每次程序读取一行并尝试用逗号分割它时,它显然会跳过第一个标记。这是为什么?

void readCSV(string path) {
    ifstream file;
    string line,cell;
    stringstream ss;
    
    file.open(path);
    if (file.fail()) {
        throw runtime_error("Cannot read file");
    }

    while (getline(file,line)) {
        ss << line;
        while (getline(ss,cell,',')) {
            cout << cell << " ";
        }
        cout << endl;
        ss.str(string());
        ss.clear();
    }
    
    file.close();
}

CSV 文件内容

a,b,c,d,e
1,2,3,4,5

输出

  b c d e
  2 3 4 5

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