gets
函数 <cstdio>
char * gets ( char * str );
从stdin获取字符串
从标准输入(
stdin)中读取字符,并将它们作为C字符串存储到str中,直到到达换行符或文件结束符。
如果遇到换行符,不会将其复制到str中。
在复制到str的字符之后会自动附加一个终止空字符。
注意,gets与
fgets有很大的不同:gets不仅使用
stdin作为源,而且在结果字符串中不包括结束的换行符,
而且不允许指定str的最大大小(这可能导致缓冲区溢出)。
☲ 参数
str
指向一个内存块(char数组)的指针,在该内存块中存储读取的c字符串。
☉ 返回值
如果成功,函数返回str。
如果在试图读取字符时遇到文件结束符,则设置文件结束指示符(
feof)。
如果在读取任何字符之前发生这种情况,则返回的指针为空指针(并且str的内容保持不变)。
如果发生读错误,则设置错误指示符(
ferror)并返回一个空指针(但str所指向的内容可能已经更改)。
⇄ 兼容性
C标准的最新修订版(2011年)明确地从其规范中删除了这个函数。
该函数在c++中已弃用(从2011年标准开始,遵循C99+TC3)。
☣ 示例
/* gets example */
#include <stdio.h>
int main()
{
char string [256];
printf ("Insert your full address: ");
gets (string); // warning: unsafe (see fgets instead)
printf ("Your address is: %s\n",string);
return 0;
}
|
🍄 另请参阅
fgets |
从流中获取字符串(function ) |
getchar |
从stdin获取字符(function ) |
scanf |
从stdin读取格式化的数据(function ) |