通过读取文件并将其显示而获得的C中的字符串数组

时间:2019-02-19 22:36:32

标签: c

我想存储一个字符串数组,并像这样显示它

#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);

    }



}

,但是输出仅是文件im的最后一行,它使用x次。 有建议吗?

1 个答案:

答案 0 :(得分:1)

使用您的编码样式尝试一下(请根据需要调整硬编码值)

#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;
}