c语言输入scanfscanf怎么同时输入两个字符

C语言程序设计:scanf输入两个及以上数值问题
scanf输入两个及以上数值问题第1周
例1:int a,b;scanf("%d %d",&a,&b);
//双引号内用空格间隔,则在终端中也必须以空格间隔输入两个数值例2:int
a,b;scanf("%d,%d",&a,&b);
//双引号内用逗号间隔,则在终端中也必须以逗号间隔输入两个数值例3:int
a,b;scanf("%d %d ",&a,&b);
//双引号内有两个空格间隔,则在终端中也必须有两个同样格式的空格间隔例4:int
a,b;scanf("abc%d %d ",&a,&b);
//双引号内有其他内容,则在终端中也必须有两个同样格式的其他内容总结:scanf()双引号内为什么输入格式,则在终端中也必须为什么输入格式扫一扫体验手机阅读
C语言scanf输入格式 printf输出格式
<span type="1" blog_id="1733488" userid='
分享到朋友圈
关注作者,不错过每一篇精彩在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
我的代码如下:
#include &stdio.h&
int main(int argc, char **argv) {
scanf("%d", &i);
printf("%d", i);
当我输入字符a时,输出的好像是个随机数,执行几次结果不一样。
我阅读了《C标准库》中scanf函数的实现,发现其中是考虑到所有字母的。在对%d的格式进行处理时,会调用strtol函数进行转换,strtol实际又调用了_Stoul函数。这个函数首先处理了正负号、多余的空格,然后判断了是否是16进制和8进制,最后的核心转换代码如下:
for (s2 = sc, (sd = memchr(digits,
tolower(*sc), base)) != NULL; ++sc)
x = x*base + (sd - digits);
其中的digits数组定义如下:
static const char digits[] = {
/* valid digits */
"abcdefghijklmnopqrstuvwxyz"};
可以看到这个函数是考虑到了字母到数字的转换的。那么为什么我输入字符a后会输出一个随机的数呢?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
因为你输入字符a的时候scanf根本就没有往i里赋值,你又没有给i赋初值,所以i的值就是个随机数。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
scanf并未考虑所有字母啊,在%d十进制模式下,对于'0'~'9'以外的字母,都会被忽略掉,并期待输入正确的字符;
之所以那个函数会把abcdef什么的考虑进去,是因为在%x和%X十六进制模式下需要用到
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。人生除了眼前的苟且,还有C/C++与远方!
声明:本人录制视频若代码写的不好或者写的一般,请大家谅解。也请大家多给我提一些建议!让我及时改!投稿:17粉丝:168未经作者授权 禁止转载
看过该视频的还喜欢miniOFF豆丁微信公众号
君,已阅读到文档的结尾了呢~~
关于c语言的void main
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
关于c语言的void main
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 c语言如何scanf字符串 的文章

 

随机推荐