Ввод и вывод массива структур - C (СИ)
Формулировка задачи:
все вроде ничего, прога работает, но не получается вывести в консоль то, что нужно.. в размерности массива где-то я, наверное, плаваю..
Сделать нужно было с помощью библиотечных функций ввода-вывода.
вот, собственно, само задание:
"Создать программу, позволяющую вводить элементы массива структур (размерность массива не более 30 элементов), содержащие сведения о расписании поездов: день недели, станция назначения (название не более 20 символов, количество поездов до данной станции в день не более 5, количество станций не более 10), номер поезда и время отправления, и позволяющую по задаваемой станции назначения посмотреть сведения о соответствующих поездах: день недели, номер поезда и время отправления".
Подскажите, пожалуйста, где у меня есть ошибки!! Буду очень благодарен
#include <stdio.h> #include <string.h> #include <conio.h> int main(){ const int l_station = 20; struct Train { char day[l_station+1]; char num[l_station+1]; char station[l_station+1]; char time[l_station+1]; }; const int l_dbase = 3; Train dbase[l_dbase]; char station[l_station+1]; FILE *fout; if ((fout = fopen("D:\dbase.txt", "w")) == NULL){ puts("Oshibka\n");getch(); return 1; } for (int i=0; i<l_dbase; i++){ scanf ("%s%s%s%s", &dbase[i].station, &dbase[i].day, &dbase[i].num, &dbase[i].time); fprintf(fout, "%s %s %s %s \n", dbase[i].station, dbase[i].day, dbase[i].num, dbase[i].time); } fclose (fout); fflush (stdin); FILE *fin; if ((fin = fopen("D:\dbase.txt", "r")) == NULL){ puts("Oshibka\n");getch(); return 1; } int i = 0; while (!feof(fin)) { fgets(dbase[i].station, l_station, fin); fscanf(fin, "%s%s%s\n", &dbase[i].day, &dbase[i].num, &dbase[i].time); i++; if (i>l_dbase) {puts ("slishkom\n"); return 1;}} while (true) { puts("Enter station: "); gets(station); if (strlen(station) == 0)break; bool not_found = true; for (i = 0; i < l_dbase; i++) { if (strstr(dbase[i].station, station)) if (dbase[i].station[strlen(station)] = ' ') { strcpy(station, dbase[i].station); printf("%s%s%s%s\n", station, dbase[i].day, dbase[i].num, dbase[i].time); not_found = false;} } if (not_found) puts("Netu\n"); } fclose(fin); getch(); return 0; }
Решение задачи: «Ввод и вывод массива структур»
textual
Листинг программы
if (dbase[i].station[strlen(station)] == ' ')
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д