12/12/12 19:10:05.93
>>104
こちらの環境(Scientific Linux 6.3 + gcc 4.4.6)だと、
Ctrl+d で scanf() の戻り値が -1 になって break するけど、
そちらの環境(Windows?)だと Ctrl+d で抜けるのが利かないのかな。
例えば、
> if (scanf("%s", data[i].name) != 1)/* Ctrl+Dが押されたらbreakでループを抜ける */
> break;
↓
> scanf("%s", data[i].name);
> if (data[i].name[0] == 'q' && data[i].name[1] == '\0') /* 'q'が入力されたらbreakでループを抜ける */
> break;
'q' とかで終了するよう改造してみたらどうだろうか?
あるいは、Windowsなら conio.h の _getch() と _ungetch() を組み合わせてみるとか…