文件包含以下数据:
10 11 12 13 14 15
16 17 18 19 20 21
我已将第一行读入整数数组。现在我想将第二行数字读入第二个数组。我怎样才能完成第二个阵列? 我在第一行中使用了以下代码:
while(!mystream.eof())
{
mystream>>a[i];
i++;
}
答案 0 :(得分:1)
由于你没有包含任何代码,我猜你只需要一个提示。所以我将展示一些你可以实现这一目标的方法。随意询问更多详细信息并添加代码。
您可以阅读std::string
中的每一行并进行解析。您可以选择多种解析选项,例如知道字符串格式(2位数字后跟空格)和使用类似v[i] = (str[a] - '0') * 10 + str[a + 1] - '0';
的内容(您需要确定第i个整数的a值是多少),或者您可以使用string::find
的组合来搜索空格,并使用string::substr
将其拆分,然后使用itoa()
来获取整数。或者,您可以使用sscanf()
来解析字符串,即使它是C函数。
答案 1 :(得分:1)
我首先使用std::string
将一行文字读入std::getline
。
然后我从该字符串初始化std::istringstream
,并从该行解析单个int
并将其放入std::vector<int>
。我可能会使用std::istream_iterator<int>
来执行此操作,并从一对中初始化矢量。
只要std::getline
成功,我就会重复这个过程。