📜  C语言中的fgets()和gets()(1)

📅  最后修改于: 2023-12-03 15:00:13.739000             🧑  作者: Mango

C语言中的fgets()和gets()

在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()函数进行输入。