Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по си про файл текстовый и структуры

2.0K
26 мая 2004 года
Dust
18 / / 19.02.2003
Вот сижу делаю курсач себе по си. почти все сделал, но есть одна проблема: нужно чтоб информация для программы в файле была, и прога должны ее считать и в структуру занести. вот с этим у меня ничего не получаеться. может кто-нить попробует сделать? там если знать как, то строк 5-10 написать надо :)

задание: спортивное соревнование: фамилия спортсмена, его имя, город, спрот. общество, фамилия тренера, возраст, спрот. разряд, занятое место....

вот эта информация должна быть в файле, и прогой должна заноситься в структуру, чтоб потом с ней можно было работать.

пример структуры:
 
Код:
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);
}
2.0K
26 мая 2004 года
Dust
18 / / 19.02.2003
АААА!!! получилось : )) в код проги вкралась ошибка : ))) в описание структуры, в объявление переменных char, я по-тупости там * вписал,она то все и порола мне : )))
2.0K
26 мая 2004 года
Dust
18 / / 19.02.2003
и еще вопрос возник теперь, а можно как-нить char в int переконвертировать?
450
26 мая 2004 года
suffer
64 / / 20.03.2000
см. функцию atoi.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог