在C語(yǔ)言中,gets()
函數(shù)已經(jīng)被棄用,因?yàn)樗赡軐?dǎo)致緩沖區(qū)溢出。作為替代,你可以使用fgets()
函數(shù)。fgets()
函數(shù)允許你指定要讀取的最大字符數(shù),從而避免了緩沖區(qū)溢出的風(fēng)險(xiǎn)。
下面是一個(gè)使用fgets()
的示例:
#include<stdio.h>
int main() {
char buffer[100];
printf("請(qǐng)輸入一行文本:");
fgets(buffer, sizeof(buffer), stdin);
printf("你輸入的文本是:%s", buffer);
return 0;
}
在這個(gè)示例中,我們使用fgets()
函數(shù)從標(biāo)準(zhǔn)輸入(stdin
)讀取一行文本,并將其存儲(chǔ)在buffer
數(shù)組中。sizeof(buffer)
確保我們不會(huì)讀取超過(guò)緩沖區(qū)大小的字符,從而避免了緩沖區(qū)溢出。注意,fgets()
會(huì)在讀取的字符串末尾添加一個(gè)換行符(\n
),如果你不想保留這個(gè)換行符,可以手動(dòng)刪除它。