#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后面就相当于把那个回车吃了就不被他干扰了。
代码初学者,有解释错的
可要说出来哟,学嘛