C语言里的gets()函数功能是从输入缓存中读取多个字符,遇到回车符时,结束输入。
东山ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
当使用gets()函数之前有过数据输入,并且,操作者输入了回车确认,这个回车符没有被清理,被保存在输入缓存中时,gets()会读到这个字符,结束读字符操作。因此,从用户表面上看,gets()没有起作用,跳过了。
解决办法:
方法一、在gets()前加fflush(stdin);
//强行清除缓存中的数据(windows下可行)
方法二、根据程序代码,确定前面是否有输入语句,如果有,则增加一个getchar()命令,然后再调用
gets()命令。
方法三、检查输入结果,如果得到的字符串是空串,则继续读入,如:
char
str[100]={0};
do
{
gets(str);
}
while(
!str[0]
);
中间变量溢出。C语言是一种计算机程序设计语言,因为中间变量溢出导致在主函数定义好另一个函数后跳过运行的,是可以作为系统设计语言,编写工作系统应用程序。
从贴出来的代码看起来没什么问题。估计是在调用Creat函数之前输入缓冲区没有清空。在你每次调用scanf之后调用一次以下函数来清空输入缓冲区(fflush(stdin)没用):
void ClearInputBuffer()
{
int c;
while((c=getchar())!='\n');
return;
}
标题名称:c语言调用函数被跳过 c语言调用函数被跳过怎么办
文章URL:https://www.cdcxhl.com/article48/ddgsghp.html
成都网站建设公司_创新互联,为您提供企业网站制作、用户体验、电子商务、品牌网站设计、网站设计公司、移动网站建设
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联