Массив строк в C, полученный путем чтения файла и его отображения - PullRequest
0 голосов
/ 20 февраля 2019

Я хочу сохранить массив строк и отобразить его следующим образом:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main () {

    int i = 0;
    char* array[200000];
    char prod [10]; 

    FILE * fp = fopen ("arrayValues.txt", "r");

    while (fgets(prod, 10, fp) != NULL) {

        array[i] = strtok(prod, "\n\r");
        i++;

    }

    fclose(fp); 


    for (i = 0; array[i] ; i++) {

        printf("%s  %d\n", array[i], i);

    }



}

, но вывод - только последняя строка файла, с которым я работаю x раз.Предложения?

1 Ответ

0 голосов
/ 20 февраля 2019

Используя ваш стиль кодирования, попробуйте это (пожалуйста, настройте жестко запрограммированные значения в соответствии с вашими потребностями)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main () {

    int i = 0, j = 0;
    char array[200000][11];
    char prod [10]; 
    char *ptr;

    memset(array, 0, sizeof(array));

    FILE * fp = fopen ("arrayValues.txt", "r");

    while (fgets(prod, 10, fp) != NULL) {

        ptr = strtok(prod, "\n\r");
        snprintf(array[i], sizeof(array[i]) , ptr);
        printf("%s\n", array[i]);
        i++;

    }

    fclose(fp); 

    printf("============\n");

    for (j = 0; j < i; j++){ 
        printf("%s  %d\n", array[j], j);
    }

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