當使用hello world該程式的輸入時,它輸出的hell值小于 5 為什么會發生這種情況
void grab_user_input()
{
char user_input[10];
if ( fgets(user_input, 5 , stdin ) != NULL )
{
printf("%s\n",user_input);
}
}
int main()
{
grab_user_input();
return 0;
}
uj5u.com熱心網友回復:
最后一個位元組是空位元組\0。
閱讀fgets手冊了解更多資訊。這是摘錄:
char *fgets( char *restrict str, int count, FILE *restrict stream );
count - 1從給定的檔案流中讀取至多字符并將它們存盤在由 指向的字符陣列中str。如果找到換行符,則決議停止,在這種情況下str將包含該換行符,或者如果出現檔案結尾。如果讀取位元組并且沒有發生錯誤,則在寫入的最后一個字符之后的位置立即寫入一個空字符str。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/373375.html
標籤:C
下一篇:C忽略scanf上的破折號
