В этом коде я читаю файл, состоящий из ряда строк. В каждой строке 2 слова, разделенных \ t. Пока я читаю файл, я создаю динамически размещаемую таблицу, которая состоит из левого столбца слов в файле. Проблема в том, что строки массива выглядят корректными только в циклах. Когда я пытаюсь распечатать строки [i] вне циклов, элементы исчезают. Извините, если я не очень хорошо объяснил, я новичок в языке C ..!
char line[21];
int i=0;
FILE *infile=fopen("words.txt", "r");
if(infile == NULL){
printf("The Input File is Null! Please Re-Run the program.");
return 1;
}
int numofrows=11;
char **rows=malloc(sizeof(char*)*numofrows);
//read the file
while(fgets(line, sizeof(line), infile) != NULL) {
english = strtok(line, search); //this is the word of the left column
englength=strlen(english);//the length of the word
for(i=0;i<numofrows;i++){
rows[i] = malloc(11*sizeof(char));
strcpy(rows[i], english);
}
}
//this doesnt work
for(i=0;i<numofrows;i++){
printf(rows[i]);
}
Последний цикл for должен печатать каждое слово в строках массива, вместо этого ничего не печатается.