MARZOCCHI
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Задачка блин такая. Вроде не больно сложно, а чёт не получается =( Дан файл (txt), содержащий информацию о поездах. Структура записи файла: - номер поезда; - станция назначения; - время отправления; - время в пути. Написать программу, выдающую - информацию о поездах, следующих до города Х (в порядке возрастания времени отправления); - номер поезда с минимальным временем следования до города Х (с указанием времени отправления и прибытия). мне нужно самое начало, как создать из существующих данных таблицу, чтобы потом ей уже оперировать в дальнейшем? | Код: #include <stdio.h> #include <vector> #include <string.h> struct CTrain{ char trainNum[10]; char destStation[50]; char sourceStation[50]; int depatureTime; int journeyTime; CTrain(char trainnum[], char deststation[], char sourcestation[], int &depTime, int &tripTime): depatureTime(depTime), journeyTime(tripTime) { memset(trainNum,'\0',10); memset(destStation,'\0',50); memset(sourceStation,'\0',50); if(trainnum!=0 && deststation !=0 && sourcestation !=0) { strcpy(trainNum,trainnum); strcpy(destStation, deststation); strcpy(sourceStation, sourcestation); } }; CTrain() { journeyTime = 0; depatureTime = 0; memset(trainNum,'\0',10); memset(destStation,'\0',50); memset(sourceStation,'\0',50); }; }; int main(int argc, char* argv[]) { CTrain ntr; std::vector <CTrain *> trains; FILE *trains_file = fopen( "trains.txt", "r" ); if( trains_file == NULL ) { printf( "The file 'trains.txt' was not opened\n" ); return 1; } fseek( trains_file, 0L, SEEK_SET ); char buf[1024]; memset(buf,'\0',1024); while(fscanf(trains_file,"%s",buf)!= EOF) { char * pch=0; pch = strtok (buf,";"); if(pch) strcpy(ntr.trainNum,pch); pch = strtok (NULL, ";"); if(pch) strcpy(ntr.destStation,pch); pch = strtok (NULL, ";"); if(pch) strcpy(ntr.sourceStation,pch); pch = strtok (NULL, ";"); if(pch) ntr.depatureTime = atoi(pch); pch = strtok (NULL, ";"); if(pch) ntr.journeyTime = atoi(pch); trains.push_back(new CTrain(ntr.trainNum, ntr.destStation, ntr.sourceStation, ntr.depatureTime, ntr.journeyTime)); memset(buf,'\0',1024); } for(int i =0; i<trains.size();i++) printf("%s, %s, %s, %d, %d\n", trains[i]->trainNum, trains[i]->destStation, trains[i]->sourceStation, trains[i]->depatureTime, trains[i]->journeyTime); fclose(trains_file); return 0; } |
|