sscanfを使用してリストから時間と分をスキャンするのに苦労しています。以下はリストの小さな抜粋です。どのように私は時間をsscanですか?
1704 86 2:30p 5:50p Daily
1711 17 10:40a 2:15p 5
1712 86 3:10p 6:30p 1
1731 48 6:25a 9:30a 156
1732 100 10:15a 1:30p Daily
1733 6 2:15p 3:39p Daily
私はこれを試しましたが、セグメント化エラーが発生しています(この情報を構造体に入れています)。
for(i=0;i<check_enter;i++){
sscanf(all_flights[i],
"%d %d %d:%d%c %d:%d%c %s",
&all_flights_divid[1].flight_number,
&all_flights_divid[i].route_id,
&all_flights_divid[i].departure_time_hour,
&all_flights_divid[i].departure_time_minute,
&all_flights_divid[i].departure_time_format,
&all_flights_divid[i].arrival_time_minute,
&all_flights_divid[i].arrival_time_minute,
&all_flights_divid[i].arrival_time_format,
&all_flights_divid[i].frequency);
printf("%d ",all_flights_divid[i].flight_number);
printf("%d ",all_flights_divid[i].route_id);
printf("%d ",all_flights_divid[i].departure_time_hour);
printf("%d ",all_flights_divid[i].departure_time_minute);
printf("%c ",all_flights_divid[i].departure_time_format);
printf("%d ",all_flights_divid[i].arrival_time_hour);
printf("%d ",all_flights_divid[i].arrival_time_minute);
printf("%c ",all_flights_divid[i].arrival_time_format);
printf("%s\n",all_flights_divid[i].frequency);
}
これは私がそれを宣言した方法です。
struct all_flights{
int flight_number;
int route_id;
int departure_time_hour;
int departure_time_minute;
char departure_time_format;
int arrival_time_hour;
int arrival_time_minute;
char arrival_time_format;
char frequency[10];
};
struct all_flights all_flights_divid[3000];
これらは私が
0 86 2 30 p 0 50 p Daily
0 17 10 40 a 0 15 p 5
0 86 3 10 p 0 30 p 1
0 48 6 25 a 0 30 a 156
0 100 10 15 a 0 30 p Daily
0 6 2 15 p 0 39 p Daily
all_flights_dividの宣言を指定しておく必要があります。引数リストにアンパサンドがいくつか欠落しているようです。 'all_flights_divid [i] .arrival_time_format、...'ヒント:各引数の前に新しい行を追加すれば、見やすくなります。 – stacker
私はちょうど私の質問を更新しました。 –
問題はフィールド "timeformat"> all_flights_divid [i] .departure_time_formatである可能性があります。それは、departure_time_formatがstructで > char departure_time_format [2]と宣言されている場合にのみ機能します。 charの配列)あなたのscanfにはこのようなポインタが必要です。 >&all_flights_divid [i] .departure_time_format(そして、到着時間と同じ原因となる) – Soren