Обработка файлов в C - Удаление определенных слов из списка в текстовом файле

Я заполняю короткий словарь из моей основной программы на C, используя следующий код:

void main () {

FILE *fp;

fp = fopen("c:\\CTEMP\\Dictionary2.txt", "w+"); 

fprintf(fp, Word to Dictionary");

Однако я также хотел бы удалить некоторые слова, которые я больше не хотел бы быть в словаре. Я провел небольшое исследование и знаю, что

«Вы не можете удалить контент из файла, а оставшийся контент сдвинуть вниз. Вы можете только добавлять, усекать или перезаписывать.

Ваш лучший вариант - прочитать файл в память, обработать его в памяти и записать обратно на диск ».

Как я могу создать новый файл без слова, которое я хочу удалить?

Спасибо

 Dawn of Time09 янв. 2017 г., 12:11
@ Jean-BaptisteYunès и @ Какой-то программист, чувак. Спасибо за ваш вклад.
 Jean-Baptiste Yunès09 янв. 2017 г., 11:53
Прочитайте исходный файл слово за словом, для каждого слова, которое вы хотите, запишите его в вывод.
 Some programmer dude09 янв. 2017 г., 11:53
«Лучший вариант - прочитать файл в память, обработать его в памяти и записать обратно на диск». Часть «процесс» просто не записывает данные, которые вам не нужны, в файл.

Ответы на вопрос(1)

Решение Вопроса
Вы открываете два файла: один у вас (для чтения) и новый (для записи).Вы просматриваете первый файл, читая каждую строку по очереди.Вы сравниваете содержимое каждой строки со словами, которые нужно удалить.Если строка не соответствует ни одному из слов удаления, вы записываете ее в новый файл.

Если необходимые вам манипуляции намного сложнее, вы можете буквально «прочитать их в память» с помощью mmap (), но это более продвинутый метод; вам нужно рассматривать файл как байтовый массив без нулевого терминатора, и есть много способов испортить это.

 Dawn of Time15 янв. 2017 г., 15:59
Привет, Ричард, не возражаешь? Если бы я задал тебе пару вопросов о том, что ты только что сказал в чате?
 Dawn of Time09 янв. 2017 г., 13:09
Спасибо @Richard Urwin за ваш вклад. Мои манипуляции не так сложны, поэтому я пойду или ваш первый метод.
 Richard Urwin12 янв. 2017 г., 10:42
Когда вы закончите, вы получите два файла: старый и новый. Возможно, вы захотите заменить старую на новую, и для этого есть шаблон, который неочевиден: после закрытия обоих файлов сначала переименуйте старый файл. Затем переименуйте новый файл в оригинальное имя, затем удалите старый файл. Если вы этого не сделаете и возникнет проблема, вы можете потерять все свои данные.

Ваш ответ на вопрос