我想存储一个字符串数组,并像这样显示它
#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次。 有建议吗?
答案 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;
}