バグを防ぐためにプログラム(C言語)をテストしているときに、プログラムが整数を要求したときに\を誤ってクリックしました。その後、whileループが失敗し始めます。例:予期しない入力でループが失敗する(C)
int a;
while(1){
scanf("%d",&a);printf("%d\n",a);
a--;
if(a==0){break;}
}
数字を入力するときはいつでも、同じ番号を印刷することになっています。しかし、文字を入力すると、前の入力の下にあるすべての数字が印刷され、1より下の数字がすべて印刷され始めます。 誰でもこの問題を解決する手がかりを与えることができますか?どうもありがとう。
編集:このプログラムはバグの一例にすぎず、実際のプログラムはこれよりもはるかに大きいです。
私はscanfを使用しないことをお勧めします。最低でも、戻り値を確認してください。 –
あなたのプログラムの目的は何ですか?あなたが0に達するまで、与えられた数字の下の値を印刷するのですか? – user5478656
@ user5478656このプログラムは、入力するまで入力した内容を印刷します。 –