函式
<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;
}

另見