我在这方面有很大的麻烦...
printf("> ");
int x = getchar();
printf("got the number: %d", scanf("%d", &x));
输出
> 1234
got the number: 1
发布于 2011-02-23 12:43:08
典型的方法是使用scanf
int input_value;
scanf("%d", &input_value);
但是,在大多数情况下,您需要检查读取输入的尝试是否成功。scanf
返回它成功转换的项目数,因此您通常希望将返回值与预期读取的项目数进行比较。在本例中,您希望读取一个项目,因此:
if (scanf("%d", &input_value) == 1)
// it succeeded
else
// it failed
当然,所有scanf
系列(sscanf
、fscanf
等)也是如此。
发布于 2013-10-18 09:18:47
解决方案很简单...你正在读取getchar(),它提供了输入缓冲区中的第一个字符,而scanf只是将它解析成一个整数(真的不知道为什么),如果你只是忘记了一秒钟的getchar,它将读取整个缓冲区,直到换行符。
printf("> ");
int x;
scanf("%d", &x);
printf("got the number: %d", x);
输出
> [prompt expecting input, lets write:] 1234 [Enter]
got the number: 1234
https://stackoverflow.com/questions/5087062
复制相似问题