为什么gets("a"),gets("b")不能正确输入字符数组a,b呢
4个回答
展开全部
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
从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
展开全部
应该是gets(a);
gets(b);
"a",
"b"代表常量字符串,其内容就是字符'a''\0'和'b'
'\0'
而字符数组a,b内可以赋值给他们任何字符,是变量。
函数gets()的参数需要是变量,而不能是常量。
gets(b);
"a",
"b"代表常量字符串,其内容就是字符'a''\0'和'b'
'\0'
而字符数组a,b内可以赋值给他们任何字符,是变量。
函数gets()的参数需要是变量,而不能是常量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
去掉双引号,直接gets(a);gets(b);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |