相关疑难解决方法(0)

如何在C++中读取和解析CSV文件?

我需要在C++中加载和使用CSV文件数据.此时它实际上只是一个以逗号分隔的解析器(即不用担心转义新行和逗号).主要需求是逐行解析器,每次调用方法时都会返回下一行的向量.

我发现这篇文章很有前途:http: //www.boost.org/doc/libs/1_35_0/libs/spirit/example/fundamental/list_parser.cpp

我从未使用过Boost的精神,但我愿意尝试.但只有在没有更直接的解决方案的情况下,我才会忽视.

c++ csv parsing text

246
推荐指数
15
解决办法
32万
查看次数

为什么从std :: istream读取记录结构字段失败,我该如何解决?

假设我们有以下情况:

  • 记录结构声明如下

struct Person {
    unsigned int id;
    std::string name;
    uint8_t age;
    // ...
};
Run Code Online (Sandbox Code Playgroud)
  • 记录使用以下格式存储在文件中:

ID      Forename Lastname Age
------------------------------
1267867 John     Smith    32
67545   Jane     Doe      36
8677453 Gwyneth  Miller   56
75543   J. Ross  Unusual  23
...
Run Code Online (Sandbox Code Playgroud)

应该读入该文件以收集上述任意数量的Person记录:

std::istream& ifs = std::ifstream("SampleInput.txt");
std::vector<Person> persons;

Person actRecord;
while(ifs >> actRecord.id >> actRecord.name >> actRecord.age) {
    persons.push_back(actRecord);
}

if(!ifs) {
    std::err << "Input format error!" << std::endl;
} 
Run Code Online (Sandbox Code Playgroud)

问题:(这是一个常见问题,以一种或另一种形式)
我可以做些什么来读取将它们的值存储到一个actRecord变量字段中的单独值?

上面的代码示例最终出现运行时错误:

Runtime error …
Run Code Online (Sandbox Code Playgroud)

c++ parsing iostream c++11

19
推荐指数
1
解决办法
2292
查看次数

标签 统计

c++ ×2

parsing ×2

c++11 ×1

csv ×1

iostream ×1

text ×1