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

Удвоить все гласные в файле - C++

Восстановить пароль Регистрация
 
liMagneto
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 11
28.03.2014, 15:13     Удвоить все гласные в файле #1
Текстовый файл. Заменить все гласные, на две аналогичных. В конце файла
записывается общее число замен.
Написан код, но совершенно ничего не работает. предвижу большое количество ошибок. Не могли бы участники форума помочь или подсказать, что неправильно?
C++ (Qt)
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
ifstream in_stream;
ofstream out_stream;
in_stream.open("F:\file1.txt");
int count_n=0;
string text[10000];
for (int i=0; i < 10000; i++)
{
    while (!in_stream.eof())
    {
        in_stream >> text[i];
        count_n++;
    }
}
string a[10];
int count = 0;
a[0] = "а"; a[1]= "о"; a[2] = "у"; a[3] = "ё"; a[4] = "е"; a[5] = "ы"; a[6] = "э"; a[7] = "я"; a[8] = "и"; a[9] = "ю";
for (int n=0; n < count_n; n++)
{
    if (in_stream >> a[0] >> a[1] >> a[2] >> a[3] >> a[4] >> a[5] >> a[6] >> a[7] >> a[8] >> a[9])
    {
            for (int i=0; i < 10; i++)
            {
            count = count + 1;
            a[i] = a[i]+a[i];
            }
    }
}
in_stream.close();
out_stream.open("F:\file2.txt");
in_stream.open("F:\file1.txt");
while(in_stream >> text[10000])
{
out_stream << text[10000];
}
in_stream.close();
out_stream << "The amount of changings = " << count << endl;
out_stream.close();
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
29.03.2014, 01:22     Удвоить все гласные в файле #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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <algorithm>
#include <locale>
using namespace std;
 
int main()
{
setlocale(LC_ALL,"Russian");
ifstream in_stream("D:\\cpp_test\\input_text.txt");
vector<string> text_lines;
string current_line;
while (getline(in_stream, current_line))
        text_lines.push_back(current_line);
in_stream.close();  
 
int cnt = 0;
string vowel = "аоуёеыэяиюАОУЁЕЫЭЯИЮ";
ofstream out_stream;
out_stream.open("D:\\cpp_test\\output_text.txt");
out_stream.clear();
for (vector<string>::iterator beg = text_lines.begin(); beg!=text_lines.end(); ++beg)
{
    string::iterator cur_symbol = beg->begin(); 
    while(cur_symbol!=beg->end())
    {
        string sym(1,*cur_symbol);
        if (find_first_of(sym.begin(),sym.end(),vowel.begin(),vowel.end())!=sym.end())
        {
                out_stream << sym << flush;
                cnt++;
        }
        out_stream << sym << flush;
        cur_symbol++;
    }
    out_stream << endl;
    
}
out_stream << endl;
out_stream << "Проведено замен: " << cnt << endl;
out_stream.close();
 
return 0;
}
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 220
29.03.2014, 04:37     Удвоить все гласные в файле #3
На будущее, когда записываешь в строчку по символу - это выглядит так:
C++
1
a[0] = 'a';
с двойными кавычками будет выдавать ошибку
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
29.03.2014, 14:51     Удвоить все гласные в файле #4
Для такой задачи вовсе не нужен массив.
В цикле читаете символ, выводите его.
Если символ - гласная буква, то выводите его еще раз.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char gl[]="aeioyu";
char c;
wihle((c=in_stream.get())!=EOF)
{
   out_stream<<c;
   bool glasn=false;
   for(int i=0;i<strlen(gl)
   {
         if(c==gl[i])
         {
               glasn=true;break;
         }
   }
   if(glasn)
       out_stream<<c;
}
Yandex
Объявления
29.03.2014, 14:51     Удвоить все гласные в файле
Ответ Создать тему
Опции темы

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