繁体   English   中英

C ++一次仅从文件读取一个元素

[英]C++ reading only one element at a time from a file

我想将一个文件读入一个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数组,尽管这样会更容易。而且,我知道,如果我在文件中的数字之间放置空格,程序将读取它们一次一个,但我希望他们像这样)

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

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

不幸的是没有getint()

如果您想保持相同的结构

#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();

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM