Я пытаюсь использовать C для чтения большого текстового файла (скажем, романа с более чем десятью тысячами слов) с помощью fscanf, но каждый раз программа будет читать до определенной точки и, по-видимому, достигнет EOF, пока это не так. далеко от конца файла.
Вот мой код:
void putWordsInArray(){
FILE* fileToRead;
char words[1024];
int singleSize = 0;
singleWordArray = (char**)malloc(1024*sizeof(char*));
indexArray1 = (int*)malloc(1024*sizeof(int));
//read the temp file automatically generated
fileToRead = fopen("temp.txt", "r");
while(fscanf(fileToRead, "%s", words) != EOF){
printf("%s\n", words);
//the following if-else statement add the word read to the single word array
//if they are not yet in the array, or increment its count by 1 isf its already there
int result = -1;
result = contains(words, singleWordArray, singleSize);
if(result == -1){
indexArray1 = (int*)realloc(indexArray1, (singleSize + 1) * sizeof(int));
singleWordArray = (char**)realloc(singleWordArray, (singleSize + 1) * sizeof(char*));
singleWordArray[singleSize] = (char*)calloc((strlen(words) + 1), 1024*sizeof(char));
strcpy(singleWordArray[singleSize], words);
indexArray1[singleSize] = 1;
singleSize++;
}
else{
indexArray1[result] += 1;
}
//check if the current list contains the incoming word or not
}
}
Кто-нибудь знает, что здесь произошло? Я считаю, что я выделил достаточно памяти каждый раз. Спасибо всем, кто помогает.