如何在Linux中替代gets函数

avatar
作者
猴君
阅读量:0

在 Linux 中,gets() 函数已被弃用,因为它容易导致缓冲区溢出

  1. 使用 fgets()

fgets() 函数可以从文件流(如标准输入)中读取一行字符串。这是一个更安全的替代方法。

#include<stdio.h>  int main() {     char buffer[256];      printf("请输入一行文本:");     fgets(buffer, sizeof(buffer), stdin);      printf("你输入的内容是:%s", buffer);     return 0; } 
  1. 使用 getline()

getline() 函数可以动态分配足够的内存来存储输入的行。这需要包含 <stdlib.h> 头文件。

#include<stdio.h> #include <stdlib.h>  int main() {     char *buffer = NULL;     size_t len = 0;     ssize_t read;      printf("请输入一行文本:");     read = getline(&buffer, &len, stdin);      if (read != -1) {         printf("你输入的内容是:%s", buffer);     }      free(buffer);     return 0; } 

请注意,getline() 函数是 POSIX 标准的一部分,可能不适用于所有系统。在编写可移植代码时,请谨慎使用。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!