从文本文件中读取整数并将它们存储到数组中

时间:2017-05-07 13:35:32

标签: c++

我几乎是C ++的新手并且从学校开始做这项任务,现在我被困住了,因为我无法让它工作,一些帮助将不胜感激。提前谢谢。

我有一个带有这样整数的文本文件:8 3 7 1 2 0

我需要创建读取这些整数并将它们存储在数组中的程序。程序检查文本文件并计算有多少整数,并相应地创建所需的大小数组,然后用文件中的整数填充该数组。我想出了类似的东西:

#include <iostream>
#include <fstream>
using namespace std;

int main(){

    ifstream File("data.txt");
    int count;
    File >> count;
    int array[count];
    for(int i=0; i<count; i++){
        File >> array[i];
    }

    cout<<"File contains: "<<count<<" integers";
    cout<<"Array of integers taken from the file: ";

    for(int i=0; i<count; i++){
        cout<<array[i];
    }
}

由于某些原因,我的count整数没有得到任何价值,我已经检查过,它只是程序后的零,因此我的整个代码都没有工作

2 个答案:

答案 0 :(得分:0)

变量长度数组不存在于c ++中。 使用vector<int>存储数据。

是的,你可以使用:

System("pwd");//linux

检查工作路径。

答案 1 :(得分:0)

  

如果提取失败,则将零写入值并设置failbit。如果提取导致值太大或太小而无法拟合值std::numeric_limits<T>::max()或{{1}写入并设置failbit标志。

这来自std::numeric_limits<T>::min() operator>>的文档。如您所见,如果提取失败,则变量设置为std::ifstream。为什么提取失败?好吧,你永远不会检查文件是否打开,因此文件可能不存在并且加载失败。

但即使您的文件正确加载,我也不会觉得文件中的第一个元素是其中的整数。如果不是,则必须读取每个整数,并将它们存储在动态数组中,因为您不知道大小(如0。)