次のループで入力を読み取ります
do
{
i=0;
do
{
line[i]=fgetc(stdin);
i++;
}while(i<100 && line[i-1]!='\n' && line[i-1]!=EOF);
//Parsing input
}while(line[i-1]!=EOF);
私の入力は次のようになります
$GPRMC,123519,A,4510.000,N,01410.000,E,010.0,010.0,120113,003.1,W*4B
$GPRMC,123520,A,4520.000,N,01650.000,E,010.0,010.0,230394,003.1,W*4B
$GPRMC,123521,A,4700.000,N,01530.000,E,010.0,010.0,230394,003.1,W*4F
$GPRMB,A,0.66,L,001,002,4800.24,N,01630.00,E,002.3,052.5,001.0,V*1D
$GPGGA,123523,5000.000,N,01630.000,E,1,08,0.9,100.0,M,46.9,M,,*68
したがって、私の問題は、最後の行の後、 EOF を読み取る必要があるときに、行で停止することline[i]=fgetc(stdin);
です。その入力をファイルからコピーして端末に貼り付けたり、端末でそのプログラムを実行したりしても、< input.txt
端末で実行すると、そこに入力を貼り付けて、停止するよりも手動で (^D) を追加EOF
します。どこで問題が発生するか教えてください。