Привет, ребята У меня есть текстовый файл, который известен как dictionary.txt. В основном я делаю меню из двух вариантов: 1. добавляю новые слова в словарь и 2. удаляю слова из словаря. прямо сейчас мне удалось сделать меню и добавить новые слова. Тем не менее, я застрял в удалении из файла. Я хочу, чтобы, когда пользователь вводит, например, «бегунов», слово выполняется в словаре.txt, и оно удаляется. Чтобы рассказать вам все, что я еще не рассматривал в школе, но я ищу здесь некоторые идеи, чтобы я мог продолжить работу. Я пробовал кое-что, но, как я уже сказал вам, я еще не рассказал об этом, поэтому не знаю, как это сделать на самом деле. Я ценю всю помощь. ниже моя программа.Как удалить из текстового файла?
ответ
- Вы открываете два файла: тот, который у вас есть (для чтения) и новый (для записи).
- Вы прокручиваете первый файл, просматривая каждую строку по очереди.
- Вы сравниваете содержимое каждой строки со словами, которые необходимо удалить.
- Если строка не соответствует ни одному из слов удаления, вы записываете ее в новый файл.
Josuel, взятый из моего ранее ответили вопрос Ричарда Urwin
Вы можете использовать следующий код:
#include <stdio.h>
int main()
{
FILE *fileptr1, *fileptr2;
char filename[40];
char ch;
int delete_line, temp = 1;
printf("Enter file name: ");
scanf("%s", filename);
//open file in read mode
fileptr1 = fopen("c:\\CTEMP\\Dictionary.txt", "r");
ch = getc(fileptr1);
while (ch != EOF)
{
printf("%c", ch);
ch = getc(fileptr1);
}
//rewind
rewind(fileptr1);
printf(" \n Enter line number of the line to be deleted:");
scanf("%d", &delete_line);
//open new file in write mode
fileptr2 = fopen("replica.c", "w");
ch = getc(fileptr1);
while (ch != EOF)
{
ch = getc(fileptr1);
if (ch == '\n')
{
temp++;
}
//except the line to be deleted
if (temp != delete_line)
{
//copy all lines in file replica.c
putc(ch, fileptr2);
}
}
fclose(fileptr1);
fclose(fileptr2);
remove("c:\\CTEMP\\Dictionary.txt");
//rename the file replica.c to original name
rename("replica.c", "c:\\CTEMP\\Dictionary.txt");
printf("\n The contents of file after being modified are as follows:\n");
fileptr1 = fopen("c:\\CTEMP\\Dictionary.txt", "r");
ch = getc(fileptr1);
while (ch != EOF)
{
printf("%c", ch);
ch = getc(fileptr1);
}
fclose(fileptr1);
scanf_s("%d");
return 0;
}
вы можете открыть файл в двоичном режиме, чтобы затем загрузить содержимое в строку или массив строк, то сделать испытующе/удаление/редактирование на строку, после чего удалите содержимое файла и, наконец, вы пишете новое содержимое в файл.
Спасибо за ваш ответ, но я ищу что-то более простое. –
@JosuelSpiteri Вот как делается большая часть редактирования файлов. Вы читаете все содержимое; хранить его в памяти; манипулировать им; и переместите ** новое ** содержимое в файл снова. – mr5
или вы должны попробовать SQL. он заботится о содержимом файла manulatig, но требует дополнительных библиотек. И этот путь более сложный, чем предлагалось – user5821508
Там нет никакого способа, чтобы удалить что-то из файла. Файловые системы не поддерживают его.
То, как вы можете изменить содержимое файла:
- удалить все содержимое файла (всякий раз, когда вы открываете файл для записи, это происходит по умолчанию)
- удалить сам файл
- перезаписать некоторые часть файла, заменив несколько байт на то же число байтов
- дописать в конец файла
Итак, чтобы удалить слово, вы должны либо прочитать весь файл в памяти, удалить слово, а затем переписать его или заменить слово пробелами (или любыми другими символами).
- 1. Как удалить содержимое текстового файла из другого текстового файла?
- 2. Удалить дубликаты из текстового файла
- 3. Удалить ссылки из текстового файла
- 4. Удалить строку из текстового файла
- 5. Удалить строку из текстового файла
- 6. Удалить строку из текстового файла
- 7. удалить строки из текстового файла
- 8. Удалить заготовку из текстового файла
- 9. Удалить строки из текстового файла
- 10. Удалить строки из текстового файла
- 11. Удалить акценты из текстового файла
- 12. Как удалить одну строку из текстового файла
- 13. Как удалить строки из текстового файла?
- 14. Как удалить повторяющиеся значения из текстового файла?
- 15. Как удалить управляющие символы из текстового файла
- 16. Как добавить/удалить строку из текстового файла?
- 17. Как удалить избыточные данные из текстового файла
- 18. Как удалить фигурные скобки из текстового файла?
- 19. Как удалить пунктуацию из текстового файла
- 20. Как удалить пустые строки из текстового файла
- 21. Как удалить определенный текст из текстового файла?
- 22. Как удалить определенное содержимое из текстового файла?
- 23. Как удалить повторяющиеся строки из текстового файла
- 24. Как удалить комментарии из текстового файла
- 25. Как удалить строку из текстового файла
- 26. Как удалить полную строку из текстового файла
- 27. Как удалить строку из текстового файла?
- 28. как удалить определенный символ из текстового файла
- 29. Как удалить скрытый атрибут из текстового файла
- 30. Как удалить группу seperator из текстового файла
Вы не можете нажать кнопку где-нибудь и удалить что-то с начала, середины или конца файла. Вы должны прочитать существующее содержимое файла и создать новый файл без удаленных частей. –
Почему downvote? В этом вопросе я не нахожу ничего странного. –
@SamVarshavchik да, я знаю об этом. Я видел, что существует функция fgets(), которая может применяться для чтения строки из текстового файла и сохраняет ее в указанной строке. однако, я не знаю, как я собираюсь применить его. Поскольку я хочу заменить эту строку ничем, поскольку я хочу ее удалить. –