Помощь - Поиск - Пользователи - Календарь
Полная версия: Формирование структуры из файла
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
кзои
Приветствую всех, вот делаю расчётку по программированию ( на языке 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), а приведенный фрагмент просто скопирует первый символ...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.