scanf() gets() fgets()使用註意事項
阿新 • • 發佈:2017-06-30
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()使用註意事項