C++ 仅读取输入文件中的部分(不是全部)数据以添加到记录中
C++ Read in some (not all) only data from an input file to add to a record
>我目前有一个CSV文件,其中包含这样的数据:
名字。。。毛。。。蛋。。。高。。。水。。。土地。。。国内
应用。
1.........0........1.......0....0....0.............1大坝。。。。。1.........1.......0..0.....1.......1
亿万。。。。。。0.........
1..0..1....1....1.......0其中 0 为假,1 为真。我只对阅读对象名称,高和国内感兴趣,我将添加到记录中。到目前为止,我有
ifstream inFile("file_name.csv");
if (inFile.fail())
{
std::cout << "File cannot be opened due to an error." << endl;
exit(1);
}
string junk;
getline(inFile,junk);
我正在绘制一个空白,了解如何设置 while 循环以跳过不必要的数据。只是没有意义,而(inFile>>名称>>头发>>鸡蛋>>高>>水>>土地>>家(我在 while 循环中思考一个 for 循环,但我就是无法在脑海中解决它。任何帮助/指导将不胜感激。
附上表图片
在这些情况下,我建议您使用类或结构对每一行进行建模:
struct Record
{
std::string name;
int hair;
int eggs;
int tall;
int water;
int land;
int domestic;
friend std::istream& operator>>(std::istream& input, Record& r);
};
std::istream& operator>>(std::istream& input, Record& r)
{
input >> name;
input >> hair;
/...
input >> domestic;
return input;
}
通过重载operator>>
您可以简化输入:
std::vector<Record> database;
Record r;
while (data_file >> r)
{
database.push_back(r);
}
要访问Name
字段:
std::cout << database[3].name << "n";
相关文章:
- 防止主数据类型C++的隐式转换
- 用于访问容器<T>数据成员的正确 API
- 嵌套在类中时无法设置成员数据
- 使用流处理接收到的数据
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在cuda线程之间共享大量常量数据
- C++将文本文件中的数据读取到结构数组中
- 如何在C++中序列化结构数据
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 在c代码之间共享数据的最佳方式
- C++ 仅读取输入文件中的部分(不是全部)数据以添加到记录中
- C++ 类析构函数删除部分但不是全部成员数据
- 每次需要时,将整个文件从磁盘复制到内存中,以处理或读取文件中的数据,直到文件全部读取
- C++删除堆分配数据的二进制数组-它会全部删除吗?关于删除,我应该知道些什么
- 逐行读取数据,但不是一次全部读取
- 在处理TCP/IP之前完全接收到它.如何知道发送的全部数据是否已被接收
- 使用套接字一次性发送全部数据
- 等待来自发送方的全部数据