У меня есть текстовый файл, который содержит телевизионные программы.Первый столбец - это название канала, второй - время его запуска, а третий - заголовок.Я хочу разбить свой текстовый файл с помощью цикла while, но когда я проверяю вне цикла, все данные в массивах перезаписываются последними.Пожалуйста, кто-нибудь, помогите мне: (
int i = 0;
FILE *f;
f = fopen("tvmusor.txt", "r");
if (!f)
{
printf("error", f);
getchar();
return -1;
}
char *buf = (char *)malloc(100);
char **chan = (char **)malloc(sizeof(char *) * 300);
char **time = (char **)malloc(sizeof(char *) * 300);
char **prog = (char **)malloc(sizeof(char *) * 300);
for (i = 0; i < 300; i++)
{
chan[i] = (char *)malloc(sizeof(char) * 30);
time[i] = (char *)malloc(sizeof(char) * 30);
prog[i] = (char *)malloc(sizeof(char) * 30);
}
i = 0;
while (!feof(f))
{
memset(buf, 0, 100);
if (fgets(buf, 100, f) == NULL)
continue;
if (strlen(buf) > 0 && strchr(buf, '\t') != NULL)
{
chan[i] = strtok(buf, "\t");
time[i] = strtok(0, "\t");
prog[i] = strtok(0, "\n");
printf("%s\t%s\t%s\n", chan[i], time[i], prog[i]);
}
i++;
}