gpt4 book ai didi

c++ - 通过 C++ 解析 csv

转载 作者:行者123 更新时间:2023-11-30 04:20:22 25 4
gpt4 key购买 nike

晚上好,我遇到了以下问题。我正在像这样解析 csv 文件:

entry1;entry2;entry3
entry4;entry5;entry6
;;

我以这种方式获取条目:

stringstream iss;
while(getline(file, string) {
iss << line;
while(getline(iss, entry, ';') {
/do something
}
}

但是我在最后一行 (;;) 中遇到了问题,我只读取了 2 个条目,我需要读取第三个空白条目。我该怎么做?

最佳答案

首先,我要指出代码中的一个问题,您的iss在读取第一行然后调用while(getline(iss, entry, '; ')),因此在阅读完每一行后,您需要重置 stringstream。它处于失败状态的原因是在调用 std:getline(iss, entry, ';')) 之后到达了文件末尾。

对于你的问题,一个简单的选择是简单地检查是否有任何内容被读入entry,例如:

stringstream iss;
while(getline(file, line)) {
iss << line; // This line will fail if iss is in fail state
entry = ""; // Clear contents of entry
while(getline(iss, entry, ';')) {
// Do something
}
if(entry == "") // If this is true, nothing was read into entry
{
// Nothing was read into entry so do something
// This doesn't handle other cases though, so you need to think
// about the logic for that
}
iss.clear(); // <-- Need to reset stream after each line
}

关于c++ - 通过 C++ 解析 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15328316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com