首页 > 解决方案 > 如何使scanf不忽略C中的空格和\ n

问题描述

所以,我目前正在课堂上学习 C 代码,我们得到了一份停止者编码器的作业。我设法做到了,但是我现在遇到了一个问题,即他们希望它承认其中的空格和新行。我已经在网上查了一下,看到了很多选项,但有几个问题:

1)我必须使用 scanf 所以不要给第二个选项

2)我正在使用常规字符而不是字符串,因为在本课程中他们还没有教过它,所以不要提供使用 char[] 或字符串或 char* 因为我不应该使用它们。提前致谢。

标签: ccharscanf

解决方案


您可以使用 一次读取一个字符scanf,并且不会忽略空格:

#include <stdio.h>

int main(int argc, char *argv[]) {
  printf("Will print all characters typed, use ctrl-D to quit\n");
  char c;
  while (scanf("%c", &c) != EOF) {
    printf("%c", c);
  }
}

推荐阅读