Getline无法读取CSV文件C ++的完整行

时间:2018-06-28 13:21:53

标签: c++ visual-studio csv delimiter getline

我正在从CSV文件中读取2d向量。但是,当它读取此单元格时,会假定它是该行的结尾,因此使该特定矢量的大小仅为1。

"HAM/  G60-II (1111-66F)
SION-01",

这是在记事本中打开CSV文件时的外观。当我将其复制到此处时,它会自动在外观中放入换行符,但在记事本中看起来却不一样。 Here's a snip of what it looks like in notepad.

另外,这很奇怪,因为当我在Excel中查看该单元格时,无论将列扩展多远,都找不到“ SION-01”。但是,当我控制+ f文档时,它指向该单元格...这很奇怪。 看起来好像是实际值中有换行符导致问题。我有一个主意,但我不知道如何实施。这将是读取逗号之间的值,但随后我不知道该行实际何时结束。我真的不知道该如何进行。我在程序中读取的大多数excel文件的值都用引号引起来,而有些则没有。

ifstream file(filename);
while (file)
{
    string line;
    if (!getline(file, line)) break;

    istringstream ss(line);
    vector<string> words;
    while (ss)
    {
        string s;
        if (!getline(ss, s, ','))break;
        words.push_back(s);

    }

    list.push_back(words);

0 个答案:

没有答案