首页 > 解决方案 > 如何使用 scanf() 读取包含 C 中空格的文件

问题描述

我不允许调用 C 库中除 、 和 之外的scanf任何printf函数feof。当我尝试使用下面的代码时,它只会读取一个最多为空格字符的文件。有没有办法在不使用的情况下阅读整行"%[^\n]"?我的最终目标是使用feoffile 读取整个文件,但首先,我需要知道如何使用scanf. 可能吗?

#include <stdio.h>
int main(){

  char ar[50];

  scanf("%s", ar);
  printf("%s", ar);

}

标签: cscanf

解决方案


一次读一个字符。

#include <stdio.h>
int main(void) {
  char ch;
  while (scanf("%c", &ch) == 1) {
    printf("%c", ch);
  }
}

PS永远不要为生产代码这样做,也不要在简历上承认你这样做了。

遵循@zwol 的建议。


“我的最终目标是使用 feof 文件读取整个文件” -->为什么“while (!feof (file))”总是错误的?.


推荐阅读