C ++一次只能从文件中读取一个元素

时间:2019-01-25 22:36:59

标签: c++ fstream

我想将一个文件读入一个int数组,但是我需要一次执行一个元素。 这是文件中的内容:

    1000320                                                                         
    0110313
    3333000
    2033000
    2203011
    2000010 

这是代码:

std::ifstream fin("file.in");
for (int i=0; i<6; ++i) //rows
{
    for (int j=0; j<7; ++j) //columns
    {
        fin>>_array[i][j];
    }
}

如果我要打印_array [0] [0],它将输出第一行中的所有内容。但是我想将文件中的内容分成行和列。 什么是对INT数组执行此操作的最优雅的方法(我不希望使用char数组,尽管这样会更容易。而且,我知道,如果我在文件中的数字之间放置空格,程序将读取它们一次一个,但我希望他们像这样)

2 个答案:

答案 0 :(得分:1)

您可以尝试使用getchar() 您将获得char,但立即将其转换为int

char temp = getchar(fin);
_array[i][j] = temp - '0';

不幸的是,没有getint()

答案 1 :(得分:1)

如果您想保持相同的结构

#include<fstream>

int main() {
    int n;
    fstream fin("urfile.txt");
    string line;
    int _array[6][7];
        for (int i = 0; i < 6; ++i) //rows
        {
            std::getline(read, fin);
            for (int j = 0; j < 7; ++j) //columns
            {
                _array[i][j] = line[j]-'0';
                cout << _array[i][j];
            }
            cout << '\n';
        }
        fin.close();

}