为什么输入文件中的数字不会进入我的数组c ++?

时间:2017-04-01 03:27:14

标签: c++ arrays file-io

我通过引用将整数的文本文件传递给函数。它们被一条新线分开。我想将它们推入函数中的新数组中。我可以计算行数没问题,并且我使用该变量来创建给定大小的数组,因此不需要向量。但是当我打印出应该是我的阵列的内容时,它就会消失。我是否需要将文件中的整数再次转换为int值(因为我从文本文件中读取它是否将它们作为字符串读取?)帮助?

C ++代码:

void myFunction(ifstream& infile)
{
    int NumberOfLines = 0;
    int index;
    string line;
    //Count the number of lines in the file
    if(infile.is_open())
    {
        while(getline(infile, line))
        {
            ++NumberOfLines;
        }
    }
    int arr[NumberOfLines];
    //Put the numbers into an array
    while(!infile.eof())
    {
        infile>>arr[NumberOfLines];
    }
    //Print the array
    for(int i=0; i<NumberOfLines; i++)
    {
        cout<<arr[i]<<endl;
    }
}

1 个答案:

答案 0 :(得分:1)

首次扫描文件时,为了计算行数,ifstream位置指示符会到达文件的末尾。

要再次读取文件,您应使用以下方法将位置指示器重置为开头:

infile.seekg(0, std::ios_base::beg);

更多信息:seekgifstream