Я читаю текст из файла построчно и разделяю строки с помощью strtok, после чего я помещаю их в массив указателей и хочу перезаписать строку вывода в тот же файл.
Для первой строки это работает, но для других строк - в выходном текстовом файле всегда отсутствует первый символ.Я думаю, что должно быть что-то не так с позицией указателя файла, но я не понимаю.
int main(void){
long pos = 0;
char *token=NULL;
char *list_text[100];
char array[100]={0};
FILE *file;
file = fopen("list.txt", "r+");
pos = ftell(file);
//read file in line by line
while(fgets(array,100,file) != NULL){
int i = 0;
int j = 0;
//split string
token = strtok(array," ");
while(token != NULL) {
printf("Token: %s\n", token);
list_text[i++] = token;
token = strtok(NULL," ");
j++;
}
//rewrite in file
fseek(file, pos, SEEK_SET);
for (int i= 0; i < j; i++){
fprintf(file, "%s ", list_text[i]);
}
fflush(file);
pos = ftell(file);
for (int i = 0; i < j; i++){ //reset
list_text[i] = 0;
}
}
fclose(file);
return(EXIT_SUCCESS);
}