c - 从控制台读取字符

标签 c scanf getchar

我编写控制台应用程序,它为 int 执行多个 scanf 然后,我执行 getchar :

int x,y;
char c;
printf("x:\n");
scanf("%d",&x);
printf("y:\n");
scanf("%d",&y);
c = getchar();

作为结果,我得到了 c = '\n',尽管输入是:

1
2
a

如何解决这个问题?

最佳答案

这是因为 scanf 在输入流中留下了你输入的换行符。尝试

do
    c = getchar();
while (isspace(c));

代替

c = getchar();

关于c - 从控制台读取字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8853154/

相关文章:

C-扫描字符串并将其分配给结构中的 char* ?

C语言: scanf and sscanf expressions

C、K&R练习1-6,卡住,困惑

c - 在C中,为什么有时只需要getchar()来删除字符?

c - 如何使用 CUDA 中的图形函数?

c - 如何为 const char* 数组赋值并打印到屏幕

转换函数以从字符串而不是 C 中的文件读取

c - 实现永远循环时遇到问题

c - 使用宏扩展创建多个#define 常量

c - 逻辑哪里错了?