c语言 getchar_C语言gets输入问题

1dde288c0a1935889fd382d6ad555c92.png

#C语言初学#前几天敲代码总有个问题,在C语言编译器中我用gets函数录入字符串时怎么都录不进去,好像就跳过了输入这个步骤。

代码:scanf("%d",&a);

gets(str);

问题来了,你在scanf时输入时候是敲了一个回车的,回车符号是没有别录入的,它就被gets输入。

所以gets是没有执行你想要的功能的。

那时候不知道,我的天头皮都抓光了,去网上查资料,开头几个链接永远是广告。看了一天的书才发现有输入缓存这东西,你在C语言重键盘输入的都会放在一个输入缓存文件里,gets和scanf等输入语句都是从里面相当于拿出来。stdin就是这差不多这文件的名字,可以在scanf后面加一个fflush(stdin)。

代码: scanf("%d",&a);

fflush(stdin)

gets(str);

它的功能就是清空输入缓存就不会被那个没有输入的回车符影响了。当然还可以直接把回车符处理了,加个getchar,

代码: scanf("%d",&a);

getchar();

gets(str);

它是输入一个字符,放在scanf后面就相当于把那个回车吃了就不被他干扰了。

代码初学者,有解释错的

可要说出来哟,学嘛


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部