Re: Вопросик по "C"
Доделываю контрольную по С и не могу добить одно задание.
Помогите люди добрые
Прожку делаю по примеру. Как работает прожка почти разобрался, при компиляции ошибок не выдает, но не работает как нужно.
Масив структур.
Приклад 22. Створити масив структур для опису мотоциклів з полями: марка, завод - виробник, ціна, номер двигуна. Вивести в окремий файл всі данні про мотоцикли, вироблених на введеному з клавіатури заводі - виробнику та ті що мають 5-ти значний номер двигуна, що починається з заданої цифри.
Листинг
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 4
void main ()
{
struct motoc
{
char marka[15];
char zavod[15];
float cena;
char nomer_d[15];
}x[N];
FILE *f1,*fv;
char zadan_zavod[15],n;
int i;
float t;
clrscr();
f1=fopen("C:\\User\\otv.txt","w");
fv=fopen("C:\\User\\vh.txt","r");
printf("vvedite 4islo t=\n");
scanf("%f",&t);
for (i=0;i<N; i++)
{
fscanf(fv,"%s",&x.marka);
fscanf(fv,"%s",&x.zavod);
fscanf(fv,"%f",&x.cena);
fscanf(fv,"%s",&x.nomer_d);
}
printf ("Введіть заданий завод виробник=\n");
fflush(stdin);
scanf ("%s",&zadan_zavod);
printf ("Введіть задану початкову цифру в номері двигуна=\n");
fflush(stdin);
scanf ("%c",&n);
for (i=0;i<N;i++)
if((strcmp(x.zavod,zadan_zavod)==0)&& (x.nomer_d[0]==n) && (strlen(x.nomer_d)==5))
{
fprintf(f1,"марка=%s\n завод=%s\n цена=%f\n номер двигуна=%s", x.marka, x.zavod, x.cena, x.nomer_d);
printf("марка=%s\n завод=%s\n цена=%f\n номер двигуна=%s", x.marka, x.zavod, x.cena, x.nomer_d);
}
fclose(f1);
fclose(fv);
getch();
}
Смысл проги в том, чо есть масив структур. Масив задается в файле vh.txt. Из этого файла считываются данные, и сравниваются с данными ,которые вводятся с клавиатуры. Совпадающие данные выводятся на экран и записываются в файл otv.txt. Только у меня прога ничего не выводит. И вот у меня какой вопрос : как мне задать в файлике мою структуру. Толи сначала в строчку через пробел все марки мотоциклов, а затем в следующих цены... заводы..или в строчку каждую еденицу мото и через пробел характеристики? Как прожка будет данные считывать?
Заранее благодарен