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