Как прочитать файл, а затем сохранить его в строковый указатель с помощью strtok? - PullRequest
0 голосов
/ 03 мая 2020

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

Формат моего 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 говорящий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...