如何使scanf不忽略C中的空格和\n

如何使scanf不忽略C中的空格和\n,c,char,scanf,C,Char,Scanf,所以,我目前正在课堂上学习C代码,我们得到了一个ceaser编码器的任务。我成功地做到了,但是我现在遇到了一个问题,他们希望它承认其中的空格和新行。我已经在网上查过了,看到了不止几个选项,但有几个问题: 1) 我必须使用scanf,所以不要给出第二个选项 2) 我使用的是常规字符,而不是字符串,因为在本课程中,他们还没有教过它,所以不要提供使用char[]或strings或char*,因为我不应该使用它们。 提前感谢。您可以使用scanf一次读取一个字符,空格不会被忽略: #include &l

所以,我目前正在课堂上学习C代码,我们得到了一个ceaser编码器的任务。我成功地做到了,但是我现在遇到了一个问题,他们希望它承认其中的空格和新行。我已经在网上查过了,看到了不止几个选项,但有几个问题:

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

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

您可以使用
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);
  }
}
#包括
int main(int argc,char*argv[]){
printf(“将打印所有键入的字符,使用ctrl-D退出\n”);
字符c;
while(scanf(“%c”,&c)!=EOF){
printf(“%c”,c);
}
}

“我必须使用scanf…我使用的是常规字符,而不是字符串”-->以上是奇怪的要求,因为
scanf()
的格式需要字符串。祝你好运