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

我请分析下,为什么gets("a"),gets("b")不能正确输入字符数组a,b呢
最新回答
oО绿帽侠

2024-11-06 02:05:28

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
我不会写诗

2024-11-06 01:32:21

应该是gets(a);
gets(b);
"a",
"b"代表常量字符串,其内容就是字符'a''\0'和'b'
'\0'
而字符数组a,b内可以赋值给他们任何字符,是变量。
函数gets()的参数需要是变量,而不能是常量。
纵山崖

2024-11-06 02:06:02

去掉双引号,直接gets(a);gets(b);
冷天

2024-11-06 01:51:33

bhsjjz