首页 > 解决方案 > 扫描多维数组的问题

问题描述

我的作业是阅读 sudoku1.txt 文件并检查数独谜题是否有效。不是我只是想将 .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");

}

标签: arrays

解决方案


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

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

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

推荐阅读