扫描多维数组时出现问题

时间:2019-03-20 02:14:24

标签: arrays

我的作业是读取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");

}

1 个答案:

答案 0 :(得分:0)

检查下面的代码。首先将数字放在num中,然后尝试将9 * 9数字放入数组中。这就是为什么您丢失了第一个电话号码的原因。

由于下面的行,第一个数字是num

while (fscanf(inp,"%d",&num) != EOF)