从c++的.txt中读取多种数据类型和大小



我有以下输入文本文件:

MISSISSIPPI
0 1 5 6
3
0 1 1 1,
0 1 4 4,
0 0 0 1,
0 0 0 2,
1 1 1 1,
0 1 1 1

我想读取第一个字符串,第二行数组,第三个整数,然后其余的整个矩阵,分别为4个变量。我该怎么做呢?

std::ifstream打开文件

第一行很简单,只需使用std::getline()将整行读入std::string

如果第二行始终是4个整数,您可以硬编码4对operator>>的调用,将值存储到int[4]数组中。但是,一个更健壮的解决方案是首先使用std::getline()读取整个行,然后从std::string创建std::istringstream,然后在循环中调用operator>>从流中读取整数,将它们存储到像std::vector这样的动态数组中。

第三行很简单,只用operator>>

最后,对于矩阵,类似于上面的第二行。既然您现在知道如何从一行解析多个整数,只需对多行反复执行此操作,要么在循环中直到没有更多的行可读取,要么在矩阵固定大小的情况下硬编码迭代次数。

最新更新