我的作业是读取sudoku1.txt文件,并检查sudoku拼图是否有效。对,不是,我只是想将.txt文件扫描到一个数组中(arr [9] [9])。我在此之后立即打印数组,但是发现.txt文件中的第一个值被跳过,而不是扫描到数组中。为什么会这样?
int main() {
int i, j,num;
int arr[9][9];
FILE* inp;
inp = fopen("sudoku1.txt", "r");
if (inp == NULL) {
printf("file not found\n");
}
else {
while (fscanf(inp,"%d",&num) != EOF) {
for (i = 0; i < 9; i += 1) {
for (j = 0; j < 9; j += 1) {
fscanf(inp, "%d", &arr[i][j]);
}
}
}
}
for (i = 0; i < 9; i += 1) {
printf("\n");
for (j = 0; j < 9; j += 1) {
printf("%d ", arr[i][j]);
}
}
printf("\n\n");
}
答案 0 :(得分:0)
检查下面的代码。首先将数字放在num
中,然后尝试将9 * 9数字放入数组中。这就是为什么您丢失了第一个电话号码的原因。
由于下面的行,第一个数字是num
while (fscanf(inp,"%d",&num) != EOF)