初学者对C语言的一点理解
C语言的输入----fgets()
-
一开始初学的时候,我喜欢用scanf,因为这几乎是所有老师第一个教给学生的输入的函数,不得不承认,在初学的时候,在情况不那么复杂的时候,这的确是一个非常好用的函数,但是在后来的c语言实习过程中,我发现这并不是一个非常好用的函数,特别是涉及到空格的输入的时候,比如说要去检查一篇文章的字数的时候,这时候就要涉及到大量的空格,但scanf遇到空格就会重新检查输入,所以我上网检索了资料,在CSDN上我发现可以使用gets函数来使其遇到空格不停止,但是在我的Mac上面运行的时候我发现,这玩非常的不安全,因为他会数据溢出,所以我又在网上搜索,有没有一种方法防治数据溢出,我虽然没有找到防治溢出的方法,但是我找到了gets的替代品,那就是我今天要重点介绍的fgets函数,这种函数可以有效的防治数据的溢出,原因很简单,因为它限制了数据输入的“容量”。代码如下:
include <stdio.h>
int main(void)
{
char str[20]; /定义一个最大长度为19, 末尾是’\0’的字符数组来存储字符串/
printf(“请输入一个字符串:”);
fgets(str, 10, stdin); /从输入流stdin即输入缓冲区中读取10个字符到字符数组str中/
printf("%s\n