【发布时间】:2020-05-24 12:09:29
【问题描述】:
当我们执行以下代码时:
#include <stdio.h>
int main(void){
char x,y;
scanf("%c", &y);
x = getchar();
putchar(x);
return 0;
}
scanf("%c", &y); 语句中输入的回车将传递给 x。有什么办法可以摆脱这个吗?我现在如果我们使用scanf,那么我们可以通过scanf("%*c%c", &x); 忽略\n,但不知道使用getchar() 时会做什么。
【问题讨论】:
-
清空输入缓冲区
-
请澄清你的意思是什么
-
它的目标是读取用户输入的行,从
fgets()和一个大的缓冲区开始,然后解析char y的缓冲区。 -
我不确定这是否是最好的方法,但它适用于您的情况:stackoverflow.com/questions/7898215/…。在打电话给
getchar之前做。 -
首先您需要记住(或了解)
getchar返回一个int。这对于您真正需要的任何EOF检查都很重要。解决问题的第二件事是在循环中逐个字符读取,直到您读取换行符(或命中文件结尾)。
标签: c pointers io user-input getchar