Я пытаюсь прочитать файл и затем записать его в строковый указатель, но с каждой позицией индекса со словом в файле (он разделен пробелами).
Формат моего txt файл:
Id (int), Area (char ), Surface (int), NameEstablishment (char * Может содержать пробелы) *
Так что я подумал об использовании strtok()
, чтобы отделить каждое из слов, а затем просто выгравировать их на указателе.
Вот мой код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
int arrlen;
FILE *fp;
fp=fopen("E.txt","r");
arrlen = Grow;
char buff[100];
int count=0;
char**establishment =(char**)malloc(arrlen*sizeof(char*));
while (fgets(buff,100,fp))
{
buff [ strcspn(buff, "\r\n") ] = 0;
char *tok = strtok (buff," ");
while(tok!=NULL)
{
if (count==arrlen)
{
arrlen+=Grow;
establishment=realloc(establishment,arrlen*sizeof(char*));
}
E[count]=tok;
printf("%s\n",establishment[count]);
tok=strtok(NULL," ");
count++;
}
}
for(int i=0;i<count;i++)
{
printf("%s\n",establishment[i]);
}
fclose(fp);
return 0;}
В первом отпечатке это не У меня нет проблем, и он печатает меня так:
1
VII
2584
Granja
Las
Casas
Проблема заключается в том, когда я распечатай во второй раз, потому что это печатает мне это:
19
Сан
Фернандо
Я не показал весь вывод, потому что он составляет 19 строк в каждом отпечатке ... И извините за грамматика, я испанец sh говорящий.