-
兩種方案:
1.輸入數字的位數確定:(例如,它必須是乙個數字,或者它必須是乙個兩位數字)使用 char ch; scanf("%c", &ch);或 cin>>ch; 逐位獲取輸入,並自行將其轉換為整數型別。
請了解如何線上轉換)。
2.輸入數字的位數是不定的:(例如,它可能是兩位數字,也可能是三位數字)沒有辦法這樣做,必須有乙個結束符號(即使你不使用回車符,你也必須使用其他識別字元)。
原因是當你要輸入“123”時,程式不知道你是要輸入1還是12還是123,很可能在你輸入1之後,程式已經返回了結果。
-
對於結束字元,你可以寫 for 和 if you will execute what if you type,就是這樣,如果你不知道該怎麼做,請找我。
-
首先,你應該犯了乙個錯誤,缺少雙引號,它應該是:while(scanf(“%d”,&m)!=eof),問題不在這裡,因為我剛剛安裝了VS,似乎有點問題,我試著用c寫點東西,試了一下,你可以參考一下。
我的**如下:
首先,eof,檔案的結束標記,在迴圈中也用作一系列資料輸入來終止迴圈。 EOF 是 Stdio 庫中的常量,在 Windows 中值為 -1,在 Windows 中的命令列程式為 Ctrl+Z。
示例程式的功能很簡單,就不多說了,結果如下:
他們使用回車符和空格。
你說的錯誤到底有什麼價值,是非法資料嗎?
我知道你錯了有兩個原因,1輸入的資料是非法的或未使用正確的EOF終止方法; 2.這是導致錯誤的資料緩衝區中的某些東西。
關於 2,您可以了解我注釋掉的函式 flushall(),也許這就是原因。
希望它能有所幫助......
-
這是迴圈中的語句的問題。 迴圈中也應該有scanf()資料輸入,可以發布完整的迴圈語句來檢視問題的原因。
-
這取決於您定義的輸入函式的格式。 例如,如果你是這樣的:
scanf(“d%,d%”,a,&b);輸入第乙個數字時,必須在輸入第二個數字之前新增另乙個逗號。 也就是說,要關注兩個d%之間的形式。 如果看不懂,建議看一下譚浩強主編的書。
-
scanf() 有乙個返回值,然後你可以看到 eof 是乙個巨集定義。
-
在使用函式之前,請先了解函式的特徵。
乙個簡單的方法是使用 while 迴圈,除以 2 並取餘數,將餘數儲存在陣列中,最後以相反的順序輸出。