我正在编写一些代码,需要一个一个地获取值并将它们存储到一个 2D int 数组中,并且在从文件中获取值并手动输入它们时存在差异。它看起来像这样:
int ar[9][9];
while(!cin.eof()){
for(int i=0; i<9; i++)
for(int j=0; j<9; j++)
{
cin.get(temp);
ar[i][j] = temp -48;
}
}
我会从运行它的终端传递输入
./prog.out < inp.txt
并为 ar[0][1] 之类的随机值获取 -38 的值,但是当我键入时我会得到正确的值
./prog.out
12345678 ^d
打印 ar[0][1] 时得到 2,这是正确的。为什么这段代码会有不同的表现?是因为文件是完整的 81 个字符,后跟 \n 和 eof,而后跟 ^d 的只是几个值?
谢谢。