📅  最后修改于: 2023-12-03 15:00:13.739000             🧑  作者: Mango
在C语言中,输入输出是非常重要的一部分。常用的输入函数是fgets()
和gets()
。这两个函数可以从标准输入流读取一行文本。
fgets()
fgets()
函数是C语言中用于读取一行文本的函数。它需要三个参数:要读取的字符串的指针、最大字符数(包括终止空字符的字符数)和要读取的流(通常是stdin)。
该函数读取一行字符,包括换行符,并将其存储在指定的字符串中。该字符串以空字符结尾,即'\0'。
下面是一个示例代码,演示如何使用fgets()
函数读取用户输入的姓名和地址信息:
#include <stdio.h>
int main()
{
char name[50], address[50];
printf("请输入您的姓名:");
fgets(name, 50, stdin);
printf("请输入您的地址:");
fgets(address, 50, stdin);
printf("\n您的姓名是:%s", name);
printf("您的地址是:%s", address);
return 0;
}
gets()
与fgets()
函数不同,gets()
函数只需要一个参数:字符串指针。它将从stdin读取一行字符,直到遇到换行符为止。
该函数没有提供缓冲区大小参数,因此可能会导致缓冲区溢出。因此,为了安全起见,fgets()
函数通常作为更可靠的替代方案。
下面是一个示例代码,演示如何使用gets()
函数读取用户输入的姓名和地址信息:
#include <stdio.h>
int main()
{
char name[50], address[50];
printf("请输入您的姓名:");
gets(name);
printf("请输入您的地址:");
gets(address);
printf("\n您的姓名是:%s", name);
printf("您的地址是:%s", address);
return 0;
}
注意:上述示例代码中的gets()
函数可能会因为缓冲区溢出而导致程序崩溃。为了避免这种问题,建议使用fgets()
函数进行输入。