1 / 1 / 1
Регистрация: 30.11.2009
Сообщений: 41
1

Открыть файл, найти нужное слово и заменить его на другое

30.11.2009, 13:05. Показов 2514. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
надо открыть файл найти нужное слово и заменить его на другое.
пробывал делать получается что-то типа такого:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <conio.h>
#include <stdio.h>
#include <string.h>
int main()
{
 FILE *fm;
 char name[20];
 fm=fopen("2.txt","a");
 while ( !EOF(fm))
  {
   fscanf (fm,"%s",&name);
   if (strcmp(name,"car")==0)
     fprintf (fm," HHH ");
  }
 fclose(fm);
 getch();
 return 0;
}
но вылает ошибку "9: call of nonfuction"
вопрос где должен лежать файл 2.txt? где сама программа лежит?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2009, 13:05
Ответы с готовыми решениями:

Какой самый короткий способ открыть файл найти нужное слово и заметить его и записать изменения?
Хотел сделать простую операцию но из нехватки знаний и опыта что-то не особо получается. Мне нужно...

Найти слово в editText и заменить его на другое?
Ребят, как можно осуществить поиск в строке и если в строке есть определенные слова, то их заменить...

В файле найти определенное слово и заменить его на другое
Здравствуйте! В работе с WinAPI я новичек, поэтому возник такой вопрос: Как лучше работать со...

Как найти в текстовом файле нужное слово и удалить его?
У меня проблема в том, что я не могу html файл открыть в Excele из-за одного оператора в текстовом...

9
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
30.11.2009, 13:29 2
kami, язык исключительно C?
0
1 / 1 / 1
Регистрация: 30.11.2009
Сообщений: 41
30.11.2009, 13:33  [ТС] 3
ну нам на с++ надо это задание делать
0
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
30.11.2009, 13:34 4
Цитата Сообщение от kami Посмотреть сообщение
но вылает ошибку "9: call of nonfuction"
Замени EOF на feof.
Цитата Сообщение от kami Посмотреть сообщение
вопрос где должен лежать файл 2.txt? где сама программа лежит?
Если полностью не указан путь к файлу, то да.
0
1 / 1 / 1
Регистрация: 30.11.2009
Сообщений: 41
30.11.2009, 13:37  [ТС] 5
сделал вот так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <conio.h>
#include <stdio.h>
#include <string.h>
void main()
{
 FILE *fm;
 char name[3];
 fm=fopen("2.txt","r+");
 while ( !feof(fm) )
  {
   fscanf (fm,"%s",&name);
   if (strcmp(name,"car")==0)
     fprintf (fm," HHH ");
  }
 fclose(fm);
 getch();
}
теперь открывает файл читает слово находит нужно но не меняет его...и не выходит из цикла, как-будто нет конца файла
0
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
30.11.2009, 13:42 6
Ты пишишь в тот же файл, есесно eof никогда не наступит. Алгоритм замены слова в файле такой:
- открываешь файл 1 на чтение и создаешь файл 2 для записи
- читаешь из файла 1 по слову; если слово совпадает с искомым словом, то записываешь в файл 2 свой вариант, иначе просто записываешь полученное слово
- удаляешь файл 1.
1
1 / 1 / 1
Регистрация: 30.11.2009
Сообщений: 41
30.11.2009, 13:57  [ТС] 7
получилось типа такого. и оно работает даже=)
C++
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
#include <conio.h>
#include <stdio.h>
#include <string.h>
void main()
{
 FILE *fm, *ft;
 char name[3];
 fm=fopen("2.txt","r");
 ft= fopen("1.txt","w");
 while ( !feof(fm) )
  {
   fscanf (fm,"%s",&name);
   if (strcmp(name,"car")==0)
     fprintf (ft," HHH ");
   else
   {
    fprintf (ft," ");
    fprintf (ft,name);
    fprintf (ft," ");
   }
  }
 fclose(ft);
 fclose(fm);
 getch();
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12441 / 7467 / 1750
Регистрация: 25.07.2009
Сообщений: 13,723
30.11.2009, 13:57 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Есть ещё одна заморочка. Если сделать цикл вроде
C
1
2
3
4
...
while ( fscanf(fin, "%s", buf) )
    fprintf(fout, "%s ", ( strcmp(buf, change_from) ) ? buf : change_to);
...
в выходной файл запишется одна длинная строка из слов, разделённых пробелами...
0
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
30.11.2009, 14:17 9
kami,

надо открыть файл найти нужное слово и заменить его на другое.

меняем xxx на yyy

C++
1
2
3
4
5
6
7
#include <process.h>
 
int main( void )
{
   system("sed -i -e s/xxx/yyy/ test.txt");
   return 0;
}
0
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
30.11.2009, 15:02 10
Rififi, автоматом сдаст
0
30.11.2009, 15:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2009, 15:02
Помогаю со студенческими работами здесь

Распечатать количество вхождений заданного слова в каждую строку и заменить его на другое заданное слово
Даны две строки, содержащие не более 100 символов. Строки состоят из слов, разделенных пробелами. ...

В файле набрано слово PRINT нужно заменить его на слово LPRINT и сохранить это файл
В текстовом файле набрано слово PRINT нужно заменить его на слово LPRINT и сохранить это файл

Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово.
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово.

Ввести строку. Заменить заданное слово на другое слово в строке
Всем доброго. Возможно тему отправила не по адресочку...извиняйте ! В общем очень нужна помощь с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru