使用istringstream将数据读入结构体
Reading data into struct with istringstream
假设我有一个包含五个数据成员的结构体:
struct Info {
std::string name;
std::string last_name;
std::string school;
int age;
int dob;
}
和格式为:Joe Bob University 18 050797的字符串,其中每个字段表示我想要读入结构体每个成员的内容。我想确切地知道,结构体中的每个数据成员都在一个值中被读取,并且读取没有失败。是否有一种优雅的方式来实现这一点?
void fill_info(const std::string &line, Info *fields) {
istringstream ss(line);
ss >> fields->name;
ss >> fields->last_name;
ss >> fields->school;
ss >> fields->age;
ss >> fields->dob;
}
您可以在一行中执行插入并测试流
if(!(ss >> fields->name >> fields->last_name >>
fields->school >> fields->age >> fields->dob))
std::cout << "error reading the data";
如果您想确切地看到哪个字段失败了,您可以测试每个单独的插入。然后,您可以验证输入。
相关文章:
- CUDA:结构体的共享数据成员和对该结构体的引用成员具有不同的地址和值
- 在C++中使用带有变体数据结构的msgpack
- Redis发布/子序列化数据结构体C数据
- 从结构体访问数据时,操作符重载到哪里去了?
- 将结构体传递给线程,如何访问结构体中的多个数据
- c++操作结构体的原始数据
- 如何:公开c++数据结构/类型(结构体,枚举)供c#使用
- 在c++中向结构体addrinfo中添加数据
- 从另一个基类向结构体添加数据成员
- 使用c#结构体将数据从c# COM对象传递到c++
- 从文本文件中读取数据到结构体中,然后输出数据
- android:无法访问结构体静态数据成员
- 解析数据字节到结构体
- 如何在动态二维数组中存储数据,在结构体中声明,该结构体也被c++中的另一个结构体使用
- 这个结构体的数据在内存中的位置
- 尝试创建一个函数,将数据从文件读取到结构体数组中
- 将字节数组数据映射到c#中的结构体
- 将数据从.cpp文件传递到.h文件中的结构体中的c-string
- 将数据从文件读入结构体,对数据进行排序并写入文件
- 使用istringstream将数据读入结构体