函数
<cstdio>

gets

char * gets ( char * str );
从标准输入 stdin 获取字符串
【注意:此函数在 C 或 C++ 中已不再可用(自 C11 和 C++14 起)】

标准输入 (stdin) 读取字符,并将其作为 C 字符串存储到 str 中,直到遇到换行符或到达文件结尾

如果找到换行符,它不会被复制到 str 中。

一个终止空字符会自动附加到复制到 str 的字符之后。

请注意,getsfgets 非常不同:它不仅gets使用 stdin 作为源,而且它不将结尾的换行符包含在结果字符串中,也不允许为 str 指定最大大小(这可能导致缓冲区溢出)。

参数

str
指向一块内存(char数组)的指针,读取的字符串将作为C 字符串复制到此处。

返回值

成功时,函数返回 str
如果在尝试读取字符时遇到文件结尾,则会设置 eof 指示符 (feof)。如果这发生在任何字符被读取之前,返回的指针是一个空指针(并且 str 的内容保持不变)。
如果发生读取错误,会设置错误指示符 (ferror) 并返回一个空指针(但 str 指向的内容可能已改变)。

兼容性

C 标准在 2011 年明确地从其规范中移除了这个函数。
该函数在 C++ 中已被弃用(自 2014 年标准起)。

示例

1
2
3
4
5
6
7
8
9
10
11
/* 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;
}

另见