Помощь - Поиск - Пользователи - Календарь
Полная версия: Формирование структуры из файла
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
кзои
Приветствую всех, вот делаю расчётку по программированию ( на языке C, простая консольная программка (если так её можно назвать))и столкнулся с трудностями. Суть в следующем... Я оформил файл (текстовый) в таком виде:
111 о ууу
В общем 3 слова разделённых пробелами.
И вот таких записей может быть много. Мне нужно считать это всё в структуру из трёх элементов. Вот что я написал, но почему-то ерунда выходит... подскажите ещё способы какие-нибудь пожалуйста. Или укажите ошибку.


int i,j;
FILE *fp;
char tmp[10], tmp_t[10], tmp_k[10];
struct {
char num;
char tip;
char klv;
}tab[50];
clrscr();
while (1)
{
mg=zapisey();
fp=fopen("ras.txt","r+");
for(i=0; i<=mg; i++) {
fscanf(fp,"%s", *tmp);
tab[i].num=*tmp; printf("%s\n", tab[i].num);
fscanf(fp,"%s", *tmp_t);
tab[i].tip=*tmp_t; printf("%s\n", tab[i].tip);
fscanf(fp,"%s", *tmp_k);
tab[i].klv=*tmp_k; printf("%s\n", tab[i].klv);
fclose(fp);
printf("%s %s %s", tab[i].num, tab[i].tip, tab[i].klv);
};


Суть в том, что мне потом эту структуру нужно будет функции передать (или указатель на неё) для дальнейшего решения задачи.
За ранее спасибо.
volvo
struct {
char num;
char tip;
char klv;
} tab[50];
Здесь у тебя в записи хранятся 3 символа.

Если надо строки -
struct {
char num[10];
char tip[10];
char klv[10];
} tab[50];


Кроме этого, копировать строки вот так:
tab[i].num=*tmp;
нельзя, для копирования строк существует функция strcpy (в файле string.h), а приведенный фрагмент просто скопирует первый символ...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.