Ввод и вывод массива структур - 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)] == ' ')