为什么gets("a"),gets("b")不能正确输入字符数组a,b呢

 我来答
子非退而结网
推荐于2017-09-22 · TA获得超过407个赞
知道小有建树答主
回答量:335
采纳率:68%
帮助的人:231万
展开全部
gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。
从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。
原 型
:char *
gets ( char * str );
功 能
:读取字符串
头文件
:stdio.h(c),cstdio(c++)

#include "stdio.h" //这个头文件包含gets()函数
void main()
{
char str1[5];
gets(str1);
printf("%s\n", str1);
}

http://baike.baidu.com/link?url=GnwzgUWtFPKiz6bUGKu7OnSS78oM3CQQF2O9lxyQD8z4HluZe4q8eKyDG6O1WM4LrFv9Z00LzF0ULMnTl9UWXa
告欣江晴丽
2019-09-15 · TA获得超过3885个赞
知道大有可为答主
回答量:3157
采纳率:29%
帮助的人:510万
展开全部
应该是gets(a);
gets(b);
"a",
"b"代表常量字符串,其内容就是字符'a''\0'和'b'
'\0'
而字符数组a,b内可以赋值给他们任何字符,是变量。
函数gets()的参数需要是变量,而不能是常量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斩orz赤红之瞳
2015-01-05 · TA获得超过566个赞
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:209万
展开全部
去掉双引号,直接gets(a);gets(b);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
洁com
2015-01-05
知道答主
回答量:14
采纳率:0%
帮助的人:1.8万
展开全部
bhsjjz
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式