bool
01-05-2005, 15:55
вообщем нужна программа для подготовки и сохранения в файле информации о маршрутиах городского транспорта.И программа которая должна формировать список маршрутов которые отправляются от заданного начального пункта в заданный конечный пункт.
Программу подготовки я написал. Использовал структуру :
rasp{
char numb[10];
char vid[20];
char nach_punkt[15];
char kon_punkt[15];
char vremya[10];
}spisok[kol];
всё нормально сохраняется.
вот текст второй программы для поиска нужной информации:
# include <stdio.h>
# include <stdlib.h>
# define kol 20
struct rasp {
char numb[10];
char vid[20];
char nach_punkt[15];
char kon_punkt[15];
char vremya[10];
}spisok[kol];
void init_list(void), load(void),list(void);
int main(void)
{
char choice;
char n[15];
char k[15];
int t;
init_list();
load();
printf("Введите начальный пункт: ");
gets(n);
printf("Введите конечный пункт: ");
gets(k);
for(t=0;t<kol;++t)
if(spisok[t].numb[0] && n[0] && k[0]) {
if(spisok[t].nach_punkt==n && spisok[t].kon_punkt==k){
printf("%s\n",spisok[t].numb);
printf("%s\n",spisok[t].vid);
printf("%s\n",spisok[t].nach_punkt);
printf("%s\n",spisok[t].kon_punkt);
printf("%s\n",spisok[t].vremya);}}
getch();
}
void init_list(void)
{
register int t;
for(t=0; t<kol; ++t) spisok[t].numb[0]='\0';
}
void load(void)
{
FILE *fp;
register int i;
if((fp=fopen("bd","rb"))==NULL){
printf("Ошибка при открытии файла.\n");
return;
}
init_list();
for(i=0;i<kol;i++)
if(fread(&spisok[i],sizeof(struct rasp),1,fp)!=1){
if(feof(fp)) break;
printf("Ошибка при чтении файла.\n");
}
fclose(fp);
}
вообщем не правильно , результата нет никакого. Пробывал сравнивать первые символы в массивах, всё нормально получается :
if(spisok[t].nach_punkt[0]==n[0] && kon_punkt==k[0])
что то заклинило меня 8) не могу написать, чтобы строки сравнивал 8(
Программу подготовки я написал. Использовал структуру :
rasp{
char numb[10];
char vid[20];
char nach_punkt[15];
char kon_punkt[15];
char vremya[10];
}spisok[kol];
всё нормально сохраняется.
вот текст второй программы для поиска нужной информации:
# include <stdio.h>
# include <stdlib.h>
# define kol 20
struct rasp {
char numb[10];
char vid[20];
char nach_punkt[15];
char kon_punkt[15];
char vremya[10];
}spisok[kol];
void init_list(void), load(void),list(void);
int main(void)
{
char choice;
char n[15];
char k[15];
int t;
init_list();
load();
printf("Введите начальный пункт: ");
gets(n);
printf("Введите конечный пункт: ");
gets(k);
for(t=0;t<kol;++t)
if(spisok[t].numb[0] && n[0] && k[0]) {
if(spisok[t].nach_punkt==n && spisok[t].kon_punkt==k){
printf("%s\n",spisok[t].numb);
printf("%s\n",spisok[t].vid);
printf("%s\n",spisok[t].nach_punkt);
printf("%s\n",spisok[t].kon_punkt);
printf("%s\n",spisok[t].vremya);}}
getch();
}
void init_list(void)
{
register int t;
for(t=0; t<kol; ++t) spisok[t].numb[0]='\0';
}
void load(void)
{
FILE *fp;
register int i;
if((fp=fopen("bd","rb"))==NULL){
printf("Ошибка при открытии файла.\n");
return;
}
init_list();
for(i=0;i<kol;i++)
if(fread(&spisok[i],sizeof(struct rasp),1,fp)!=1){
if(feof(fp)) break;
printf("Ошибка при чтении файла.\n");
}
fclose(fp);
}
вообщем не правильно , результата нет никакого. Пробывал сравнивать первые символы в массивах, всё нормально получается :
if(spisok[t].nach_punkt[0]==n[0] && kon_punkt==k[0])
что то заклинило меня 8) не могу написать, чтобы строки сравнивал 8(