1. 程式人生 > >scanf() gets() fgets()使用註意事項

scanf() gets() fgets()使用註意事項

tex n) getchar() etc 緩沖區 錯誤 長度 留下 input

1、scanf()

  遇到‘\n‘停止從輸入緩沖區中接收,接收完後‘\n’還存在於緩沖區中。當輸入的字符數少於緩沖區大小時,字符後面有自動補上‘\0’,當輸入字符大於緩沖區時,也直接拷貝到緩沖中,因此緩沖區大小應註意以免產生段錯誤。

2、gets()

  當輸入的字符串低於緩沖區長度時,以‘\n’‘\0‘結尾,此時緩沖區中什麽也沒留下;當輸入的字符串大於緩沖區長度時,也會全部存入緩沖區中,註意緩沖區大小以免產生段錯誤,此時緩沖區中什麽也沒留下。

3、fgets()

  從文件字節流中獲取指定長度的字符串並以‘\0’結尾,比如要獲取10個字符,實際上獲取9個字符加一個‘\0‘

<textarea readonly="readonly" name="code" class="c">

#include <stdio.h>

int main()
{
char buff[10];
printf("input string:");
fgets(buff, 10, stdin);
printf("%s\n", buff);
getchar();

return 0;
}

</textarea>

scanf() gets() fgets()使用註意事項