天気データベースのコードを書いていますが、都市と気温を印刷しようとすると、最初の行が1文字ずれているため、理由がわかりません。私が気づいたことの1つは、たとえばprintf( "%20s"、city);を印刷するときです。最初の都市のみが変更されています。
これはCプログラミングの入門書であり、文字列についてはまだあまり学習していません。そのため、私は文字ごとに読みました。
これが私が参照しているコードのスニペットです。
while(TRUE) {
for(
i=0;
fscanf(input,"%c", &c)!=EOF && c!='#';
i++)
{ //i.e. city#..
city[i]=c;
}
if(c=='#') {
city[i] = '\0'; //Next line scans in the weather for the days of the week
fscanf(input, " (%f, %f), (%d, %d), (%d, %d), (%d, %d), (%d, %d), (%d, %d), (%d, %d), (%d, %d)",&h_avg, &l_avg,&s1,&s2,&m1,&m2,&t1,&t2,&w1,&w2,&th1,&th2,&f1,&f2,&sa1,&sa2);
printf("%20s %d %d", city, s1,s2);
} else {
printf("\n");
break;
} //Break infinite loop because for loop broke from EOF
}
サンプル出力:
Baltimore 75 60
Miami 20 10
Washington D.C. 75 50
New York 75 50
ボルチモアだけが正しく調整されています。どんな助けでも大歓迎です。