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