从C ++中的文件中读取整数

时间:2014-09-10 14:59:35

标签: c++

文件包含以下数据:

10 11 12 13 14 15
16 17 18 19 20 21

我已将第一行读入整数数组。现在我想将第二行数字读入第二个数组。我怎样才能完成第二个阵列? 我在第一行中使用了以下代码:

while(!mystream.eof())
{
    mystream>>a[i];
    i++;
}

2 个答案:

答案 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成功,我就会重复这个过程。