在C語言中,gets()
函數是一個從標準輸入(通常是鍵盤)讀取一行文本的函數。但是,由于其安全性問題,C11標準已經將gets()
函數移除了。這意味著現代C語言編譯器可能不再支持gets()
函數。
安全問題的原因在于gets()
函數沒有限制輸入字符串的長度,這可能導致緩沖區溢出,從而引發安全漏洞。因此,建議使用更安全的替代方法,如fgets()
函數。
以下是使用fgets()
函數的示例:
#include<stdio.h>
int main() {
char buffer[100];
printf("請輸入一行文本:");
fgets(buffer, sizeof(buffer), stdin);
printf("你輸入的文本是:%s", buffer);
return 0;
}
在這個示例中,fgets()
函數從標準輸入讀取最多99個字符(加上字符串結尾的空字符)到buffer
數組中。這樣可以避免緩沖區溢出的問題。