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!
另请阅读