c - 使用文件从数组中删除空白

标签 c

void read_input(FILE* inputfile,char array[]) {
     int nscan;
     char termch;
     while(TRUE) {
        nscan = fscanf(inputfile,"%30[^\n]%c",array,&termch);
        if (nscan == EOF)
          break;
        if (nscan != 2 || termch != '\n' ){
          printf("error  \n");
        }
     }
}

这是我的代码,请任何人帮我找出为什么它显示 error我添加的消息,因为 nscan 的值是2吗?

最佳答案

这个:

if (nscan != 2 || termch != '\n' ){
  printf("error  \n");
}

说:

如果 nscan 不是 2 打印错误。如果 termch 不是换行符,打印错误。这是因为您正在使用 OR 逻辑运算符 ||。这解释了您得到的行为。

因此,如果您想查看更多信息,只需在到达 if 语句之前打印两个变量的值。当然,termch 与换行符不同。

关于c - 使用文件从数组中删除空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34422538/

相关文章:

c - SIGHUP 信号处理以在 Unix 系统编程中取消命令的操作

c - GTK 文本输入

c - 在 C 中使用 mmap 读取二进制文件时出现段错误

c - While 循环未退出,错误为 `while(x!='\n')`

c - 修改c字符串的每个字符

c++ - 如何将包含十六进制值的 unsigned char* 数组写入 python 文件

c - 如何在 Linux 中使用 crypt() 方法?

c - 在 C 中执行 While 循环

c - _Noreturn in a struct in c : error: expected specifier-qualifier-list before '_Noreturn'

c - ANSI C/rand() % 7 第一个值始终为 3