代码无法读取多维数字和字符

标签 c file-io scanf

错误

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 
#define size 4 

void read_world(FILE *inp,x[][size])

  int i, j, t;
  if (inp==NULL) {
    printf("File is missing\n");
 return (0);
  }
  else {
    for (i=0;i < 4;i++) {
      for (j=0;j < 4;j++) {
        (fscanf(inp, "%d", &t));  // error only reads first row of text
        x[i][j]=t;
      }
      printf("%d\n", x[i][j]);

    }
  }
  return(0);
}
int main(void) {
  int i, j;
  int g[4][4];
  FILE*inp=fopen("world.txt", "r");  // reads file
  read_world(inp, g);
  return (0);
}

从名为 world 的 .txt 文件中读取文本所需的代码。它是一个非常简单的代码,看起来可以正确读取,该文件由数字和字符(如“0”和“*”)组成,排列在 4 x 4 矩阵中。结果只是在屏幕上打印文件的内容。

最佳答案

我认为this阅读可能有用。使用 fscanf 的返回值检查数据

关于代码无法读取多维数字和字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33330090/

相关文章:

c - C中线程同步和条件变量的问题

Java - 从 JSON 文件中提取值

c++ - 增加缓冲是否会提高 C++ 中 ifstream.getline() 的最高速度?

c - 在以字符 n 或 i 开头的字符串中搜索 float 时,sscanf 返回 1

c - void 指针和不同大小的内存

c - 对变量和指针使用相同的名称两次(c 编程)

c - rand() 在 OSX 上是否返回零?

C++文件输出奇怪的数字,部分代码没有运行

c - 如何使用 sscanf 解析输入行?

c - C 中方法的段错误