這是一個家庭作業問題。我正在參加C語言課程。我現在正在使用的要求是while循環不重複?
「如果輸入空信息,應提示用戶輸入非空信息,直到它們輸入至少1個字符長的信息。」
這是代碼我現在有:
int main(void)
{
char string[101];
int menu;
do
{
printf("Enter a text message (maximum 100 characters long) : ");
scanf(" %100[^\n]s", string);
}
while (string[0] == '\0');
如果我乘坐空間出在scanf函數行%(前),並且用戶只需點擊進入,電腦會進入一個無限循環,只是在屏幕上打印gook。 (屏幕上的文字移動速度太快,以至於我無法確定,但我認爲它正在不斷打印printf語句。)
隨着空間的存在以及用戶剛敲擊回車,它會移動光標直到用戶輸入一個有效的字符串,然後繼續。
我希望在每次用戶剛輸入時重複這個問題。我試過爲(;;)空,而在這裏你會看到do-while變化。
歡迎任何評論。謝謝。
IDR我的C,但我想你想'!='並且你迫使第一個字母成爲一個空格,所以它永遠不會退出。也許嘗試strlen <2或刪除空間 –
爲了幫助你看到輸出,你可以將它重定向到一個文本文件。 –
@icbytes是一句話嗎? –