arrays - 扫描多维数组的问题
问题描述
我的作业是阅读 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");
}
解决方案
检查下面的代码。您首先在 中输入一个数字num
,然后尝试将 9*9 数字放入数组中。这就是你丢失第一个号码的原因。
由于下面的行,第一个数字在 num 中
while (fscanf(inp,"%d",&num) != EOF)
推荐阅读
- javascript - 内部在猫鼬中加入 2 个表
- angular - 使用 ngx-bootstrap 将任何组件传递给我的模态
- python - 标记数组中的唯一行
- sql - 当值不是 1 时,MariaDB 阻止删除
- python - 获取所有模型文件的最佳方法
- wso2-am - 动态端点的故障转移 url 配置
- regex - Spring RequestMapping 正则表达式:将所有不带点 [.] 的 url 转发到 index.html
- flutter - 我正在尝试计算物品清单的总价
- python - 向月份和日期列添加零时出错
- android - flutter<->android 通信开销