C++ gets()

gets() 声明

char* gets(char* str);

gets() 函数从标准输入读取字符,并将它们存储在 str 中,直到找到换行符或文件结束符。

gets()fgets() 的区别在于 gets() 使用 stdin 流。当输入字符串过长时,gets() 函数不提供防止缓冲区溢出的机制。

它定义在 <cstdio> 头文件中。

注意: 避免使用 gets() 函数,因为它对程序来说可能不安全。此函数在 C++11 中已被弃用,并在 C++14 中被移除。

gets() 参数

str:指向字符数组的指针,用于存储来自标准输入的字符。

gets() 返回值

  • 成功时,gets() 函数返回 str
  • 失败时,返回 NULL
    • 如果失败是由文件结束条件引起的,则会设置 stdin 上的 eof 指示符。
    • 如果失败是由其他错误引起的,则会设置 stdin 上的错误指示符。

示例:gets() 函数的工作原理

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    char str[100];
    cout << "Enter a string: ";
    gets(str);
    cout << "You entered: " << str;
    
    return 0;
}

运行程序时,可能的输出是

Enter a string: Have a great day!
You entered: Have a great day!

另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战