C语句的问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 04:45:39
#include<stdio.h>
void main()
{
char c1[2];
gets(c1);
printf("%s",c1);
getch();
}
为什么我定义C1是2个字符的字符串,可我无论输入多少个字符,他都能显示~~~~~~·

对于正常的编译器这里如果你输入超过一个字符,程序结束的时候应该能抛出异常;或者这里应该会显示乱码。

也就是说你编译器有问题...

:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在str指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。
【4】注意:本函数可以无限读取,不会判断上限,所以程序员应该确保str的空间足够大,以便在执行读操作时不发生溢出。
http://baike.baidu.com/view/1457521.htm
看注意!!!!!