勵志

勵志人生知識庫

gets_s用法

`gets_s`函式是C++11標準中新增加的函式,主要用於從標準輸入流(一般是鍵盤)讀取字元串。它的作用是讀取一個字元串,直到遇到換行符或檔案結束(EOF)為止,並將結果存儲在指定的緩衝區中。由於`gets_s`函式存在緩衝區溢出的安全隱患,該函式使用時需要指定緩衝區的大小,以避免溢出。此外,`gets_s`函式還可以指定最大讀取字元數,以提高安全性。

`gets_s`函式的形式如下:

```c++

gets_s(char *str, size_t n);

```

其中,`str`是字元串變數,`n`是最大讀取字元數。

`gets_s`函式與`gets`函式的區別如下:

`gets_s`只從標準輸入(通常是鍵盤)中讀取數據,所以不需要第3個參數。

`gets_s`函式讀到換行符,會丟棄它而不是存儲它。

如果`gets_s`函式讀到最大字元數都沒有讀到字元串的結束標誌換行符,這時它會首先把目標數組中的首字元設定為空字元,會讀取在達到最大字元數量後的輸入,而且也要丟棄這隨後的輸入直到讀到換行符或檔案末尾,然後返回空指針。

總結:`gets_s`函式讀取到n(我們輸入的回車)於是停止讀取,但是它不會把n包含到字元串裡面去。然而,和它配合使用的`puts`函式,卻在輸出字元串的時候自動換行。