struct my_struct
{
char* fam[15], nam[15], city[15], sp_ob[15], fam_tren[15];
int age, razr, mesto;
} sor[20];
Вопрос по си про файл текстовый и структуры
задание: спортивное соревнование: фамилия спортсмена, его имя, город, спрот. общество, фамилия тренера, возраст, спрот. разряд, занятое место....
вот эта информация должна быть в файле, и прогой должна заноситься в структуру, чтоб потом с ней можно было работать.
пример структуры:
Код:
вот то, что я пытался сделать, но оно не работает :(
Код:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
const dl=20; // длина строк
struct my_struct
{
char* fam[dl], nam[dl], city[dl], spob[dl], fam_tren[dl];
int age, razr, mesto;
} sor[20];
int i,j; // просто переменные, которые могут понадобиться
FILE *f; //
char t[dl]; // для чтения из файла
void main()
{
f=fopen("1.txt", "r");
i=0;
j=0;
/* идея такая, что инфа написана по строчкам в файле, то есть первые
8 строк относятся к одному спортсмену, следущие 8 ко 2ому и т.д. i - это типо
счетчика, работает в интервале от 0 до 7, если равен 0, то строка из файла
заносится в sor[j].fam. j - тоже счетчик, если i>=7,то j++ */
while(!feof(f))
{
fgets(t, dl, f);
if(i==0)
{
strcpy(sor[j].fam,t); // это место вызывает ошибку :( должно было
// содержимое t перенестись в sor[j].fam.
}
if(i<7)
{
i++;
}
else
{
i=0;
j++;
}
}
fclose(f);
}
#include<string.h>
#include<conio.h>
#include<stdlib.h>
const dl=20; // длина строк
struct my_struct
{
char* fam[dl], nam[dl], city[dl], spob[dl], fam_tren[dl];
int age, razr, mesto;
} sor[20];
int i,j; // просто переменные, которые могут понадобиться
FILE *f; //
char t[dl]; // для чтения из файла
void main()
{
f=fopen("1.txt", "r");
i=0;
j=0;
/* идея такая, что инфа написана по строчкам в файле, то есть первые
8 строк относятся к одному спортсмену, следущие 8 ко 2ому и т.д. i - это типо
счетчика, работает в интервале от 0 до 7, если равен 0, то строка из файла
заносится в sor[j].fam. j - тоже счетчик, если i>=7,то j++ */
while(!feof(f))
{
fgets(t, dl, f);
if(i==0)
{
strcpy(sor[j].fam,t); // это место вызывает ошибку :( должно было
// содержимое t перенестись в sor[j].fam.
}
if(i<7)
{
i++;
}
else
{
i=0;
j++;
}
}
fclose(f);
}
АААА!!! получилось : )) в код проги вкралась ошибка : ))) в описание структуры, в объявление переменных char, я по-тупости там * вписал,она то все и порола мне : )))
и еще вопрос возник теперь, а можно как-нить char в int переконвертировать?
см. функцию atoi.