C言語なら、俺に聞け! lt;50gt;
■ このスレッドは過去ログ倉庫に格納されています
0539デフォルトの名無しさん
NGNG入力された文字列が配列の範囲を越えてしまった時に、警告を出した上で
もう一度入力させるにはどうすればいいでしょうか?
void main(void){
int i, j;
char str[5][20];
char buf[20];
for (i = 0; i < 5; i++){
while (1){
fflush(stdin);
fgets(buf, sizeof(buf), stdin);
if (sscanf(buf, "%s", str[i]) == 1)
break;
printf("もう一度入力して下さい。\n");
}
}
今はこんな感じで作ってます。
空白だけを入れた場合の警告は出るようにしています。
しかし、配列の上限を越えた入力をチェックする方法が解からず、
しょうがないのでループの先頭でバッファに溜まった分を切り捨てるようにしています。
これを解決するスマートな方法ってないですかね。。。
■ このスレッドは過去ログ倉庫に格納されています