首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在C中从stdio获取int?

如何在C中从stdio获取int?
EN

Stack Overflow用户
提问于 2011-02-23 12:39:51
回答 2查看 163K关注 0票数 31

我在这方面有很大的麻烦...

代码语言:javascript
复制
printf("> ");
int x = getchar();

printf("got the number: %d", scanf("%d", &x));

输出

代码语言:javascript
复制
> 1234
got the number: 1
EN

回答 2

Stack Overflow用户

发布于 2011-02-23 12:43:08

典型的方法是使用scanf

代码语言:javascript
复制
int input_value;

scanf("%d", &input_value);

但是,在大多数情况下,您需要检查读取输入的尝试是否成功。scanf返回它成功转换的项目数,因此您通常希望将返回值与预期读取的项目数进行比较。在本例中,您希望读取一个项目,因此:

代码语言:javascript
复制
if (scanf("%d", &input_value) == 1)
    // it succeeded
else
    // it failed

当然,所有scanf系列(sscanffscanf等)也是如此。

票数 6
EN

Stack Overflow用户

发布于 2013-10-18 09:18:47

解决方案很简单...你正在读取getchar(),它提供了输入缓冲区中的第一个字符,而scanf只是将它解析成一个整数(真的不知道为什么),如果你只是忘记了一秒钟的getchar,它将读取整个缓冲区,直到换行符。

代码语言:javascript
复制
printf("> ");
int x;
scanf("%d", &x);
printf("got the number: %d", x);

输出

代码语言:javascript
复制
> [prompt expecting input, lets write:] 1234 [Enter]
got the number: 1234
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5087062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档