Форум программистов, компьютерный форум CyberForum.ru

Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*» - C++

Восстановить пароль Регистрация
 
Dodje
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 8
17.10.2012, 22:16     Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*» #1
Прошу помочь с задачей.Теории не было, сразу практика.Должны своими мозгами , но моих не хватает.
Это последняя задача и завтра зачет.=/

Задание: Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*», и оставляя пустую строку после каждых трех строк.


То, что я сделал.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<stdio.h>
#include<conio.h>
#define FNAME "E:\\text.txt\0"
void main()
{
  clrscr();
 
  char fname[25]  = FNAME;
  FILE *out;
  char *s,str[80];
  int k,q;
 
  printf("\n‘®¤??¦**?? ?*©«* %s\n",fname);
  puts("-------------------------------");
 
  if((out = fopen(fname, "rt")) == NULL)
  {
    printf("?????* ®??????? ?*«* ¤«? ???*??");
    getch();
    return;
  }
  q=0;
 
  while (!feof(out))
  {
    fgets(s,80,out);
    q++;
    k=q;
    if ((q % 3) == 0)
      {
    s[q+1]=' ';
      }
    printf("%s",s);
  }
  fclose(out);
  puts("\n---------------------------");
  printf("\nq= %d", q);
  puts("\n---------------------------\n");
  //printf("%s",s);
  getch();
}
Добавлено через 32 минуты
Тема очень очень очень актуальна.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 22:16     Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*»
Посмотрите здесь:

Дан текстовый файл. Заменить окончание ing каждого слова, встречающегося в заданном предложении на ED и сохранить результат в новый файл. C++
Открыть текстовый файл и удалить 11 последних символов на каждой строке C++
Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый файл C++
C++ Дан текстовый файл. Переписать компоненты файла в другой файл, заменив при этом каждое сочетание букв “no” на “on”
C++ Открыть существующий текстовый файл и копировать его в новый файл, с заменой всех букв нижнего регистра
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,279
17.10.2012, 23:07     Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*» #2
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <fstream>
#include <iostream>
#include <string>
 
using namespace std;
 
void replace(string * const s, const string &find, const string &replace)
{
    int pos = s->find(find);
    while (pos != string::npos)
    {
        s->replace(pos, find.length(), replace);
        pos = s->find(find, pos + replace.length());
    }
}
 
void main(void)
{
    string in_file_name;
    cout << "in_file_name>";
    cin >> in_file_name;
 
    string out_file_name;
    cout << "out_file_name>";
    cin >> out_file_name;
 
    if (in_file_name == out_file_name)
    {
        cout << "error: in_file_name = out_file_name" << in_file_name.c_str() << endl;
        system("pause");
        return;
    }
 
    ifstream in(in_file_name.c_str());
    if (!in)
    {
        cout << "error: can not open file " << in_file_name.c_str() << endl;
        system("pause");
        return;
    }
 
    ofstream out(out_file_name.c_str());
    if (!out)
    {
        cout << "error: can not create file " << out_file_name.c_str() << endl;
        system("pause");
        return;
    }
 
    int idx = 0;
 
    while (!in.eof())
    {
        string line;
        getline(in, line);
        replace(&line, "ok", "*");
        out << line << endl;
        idx++;
        if (!(idx % 3)) out << endl;
    }
 
    in.close();
    out.close();
}
Dodje
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 8
17.10.2012, 23:29  [ТС]     Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*» #3
Какую-то ошибку выдает.Но спасибо, буду обдумывать,что вы написали.

Добавлено через 1 минуту
И по-моему немного не тот язык.
Мы работает через Borland c++
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,279
18.10.2012, 00:53     Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*» #4
как бы вам сказать - я этот код копировал прямо из среды borland c++ builder 6 и он отлично собирается и отрабатывает на экспериментальном файле так что я затрудняюсь сказать что именно у вас там барахлит, ошибку хотя бы скажите. как вариант - создан проект оконного приложения или приложения на си, а код приведен для консольного приложения на си++.
Yandex
Объявления
18.10.2012, 00:53     Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*»
Ответ Создать тему
Опции темы

Текущее время: 00:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru