c语言中gets函数和是scanf函数有什么区别呢??

charzhanghao[10];shuru:printf("\n\n\n\n\t\t\t请输入管理员账号:");scanf("%s",zhanghao);if(strc... char zhanghao[10];
shuru:
printf("\n\n\n\n\t\t\t请输入管理员账号:");
scanf("%s",zhanghao);
if(strcmp(cszh,zhanghao)!=0)
{
system("cls");
printf("您输入的管理员账号不存在,请重新输入;");
goto shuru;
}
如果scanf("%s",zhanghao );
改成gets(zhanghao);会先显示输入的账号不存在,请重新输入
这是为什么呢??
展开
 我来答
床前明月儿
高能答主

2019-09-28 · 探索生活中的另一种可能
床前明月儿
采纳数:101 获赞数:171936

向TA提问 私信TA
展开全部

一、指代不同

1、scanf:是C语言中的一个输入函数。

2、gets:从标准输入设备读字符串函数。

二、读取方式不同

1、scanf:是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

2、gets:可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。


三、数据流向不同

1、scanf:函数 scanf() 是从标准输入流stdin  (标准输入设备,指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

2、gets:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。


参考资料来源:百度百科-gets

参考资料来源:百度百科-scanf

风若远去何人留
推荐于2018-03-29 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450110
专业C/C++软件开发

向TA提问 私信TA
展开全部
都是从输入流中读取数据,但功能有很大差别:
1 操作类型不同。
gets函数仅用于读入字符串。
scanf为格式化输出函数,可以读入任意C语言基础类型的变量值,而不是仅限于字符串(char*)类型。

2 截止字符不同。
gets函数固定的以换行符作为结尾,遇到换行符时结束输入。

scanf函数默认以空白函数结尾,同时可以对截止函数进行修改。

3 对截止字符处理不同。
gets函数会读入截止字符\n, 同时将\n自动替换为\0.
scanf遇到截止字符时不会继续读取,截止字符将存储于输入缓冲中。

4 返回值类型不同。
gets的返回值为char*型,当读入成功时会返回输入的字符串指针地址,出错时返回NULL。
scanf返回值为int型,返回实际成功赋值的变量个数,当遇到文件结尾标识时返回EOF。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
古韵青花2012
2012-04-18
知道答主
回答量:6
采纳率:0%
帮助的人:3.5万
展开全部
gets函数和scanf函数都可以作为字符串的输入函数,
相同点:都是将从键盘输入的字符串存入数组中,输入完成后要以回车来结束输入。
不同点:利用sanf时,在输入过程中碰到空格时系统认为输入结束,并将空格之前的字符作为有效字符存入数组中,并在尾部追加\0作为结束标志。利用gets时,空格符被看作是有效字符,也就是说只有碰到回车符时系统才认为输入结束。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忠实诚信
2012-04-18 · TA获得超过160个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:91.4万
展开全部
是不是这代码前面还有什么输入语句,反正在我电脑上运行结果一样.
gets与scanf的区别是gets一次读一行,scanf遇到空格回车结束!
追问
对。。。是前边的程序有问题。。。谢啦
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苏小木偶
2012-04-18 · TA获得超过101个赞
知道答主
回答量:89
采纳率:0%
帮助的人:49.4万
展开全部
gets()函数的话会连zhanghao后面的回车也当做字符输入了,对比的话肯定就是跟zhanghao不一样;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式