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

Чтение английского текста из файла,выделение слов и перевод - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Получить вектор B, каждый элемент которого равен среднему арифметическому соответствующей строки массива A http://www.cyberforum.ru/cpp-beginners/thread1774698.html
Дана матрица A. Получить вектор B, каждый элемент которого равен среднему арифметическому соответствующей строки массива A. Ввод: Из консоли. Подается число строк массива n, затем число столбцов m, затем элементы массива, построчно, через пробел. Вывод: Каждый элемент вектора B через пробел. Вещественное число с точностью 2. Длина вектора B соответственно равна n. Пример ввода: 2 6 8 5 6 4...
C++ Умножение матриц Найти результат умножения матрицы A, размером NA на MA, на матрицу B, размером NB на MB,. Ввод с консоли, на первой строке вводятся целые числа MA и NA через пробел; следующие MA заполнены NA вещественными числами Ai, j через пробел - соответствуют элементам матрицы на данных позициях, где i - номер соответствующей строки, j - столбца; (MA+1)ная строка содержит целые числа MA и NA через пробел;... http://www.cyberforum.ru/cpp-beginners/thread1774686.html
Вылетает программа C++
#include <iostream> #include <cstdlib> using namespace std; struct game2048 { int ar; void start() {
C++ Обработка ошибок ввода из потока cin
Доброго времени суток всем! Помогите пожалуйста разобраться. После ввода буквы например, то есть когда поток ломается, пытаюсь его починить, но программа зацикливается и бесконечно пишет "Повторите ввод, что-то пошло не так!". Как починить? struct Point { int x, y; }; vector<Point> v(7); for (int i = 0; i < 7; i++) { cout << i + 1 << "ая пара: ";
C++ Умножения матрицы на число http://www.cyberforum.ru/cpp-beginners/thread1774670.html
Найти результат умножения матрицы A, размера M на N, на число K. Ввод с консоли, на первой строке вводится вещественное число K, на второй строке - целые числа M и N через пробел, следующие M заполнены N вещественными числами Xi, j через пробел - соответствуют элементам матрицы на данных позициях, где i - номер соответствующей строки, j - столбца. Вывод в консоль М строк заполненных N...
C++ Ошибка: error LNK2019: ссылка на неразрешенный внешний символ... Не могу понять ошибку в своей программе! Ничего красным не подчёркивается, но программа не запускается. В окне "Вывод" в разделе "Построение" пишет ошибку "1>games.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl Gnumb(void)" (?Gnumb@@YAXXZ) в функции _main" Вот код с main: #include <conio.h>; #include <iostream>; #include <ctime>; #include "header_games.h"; ... подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2801 / 1577 / 247
Регистрация: 03.05.2010
Сообщений: 3,664
03.07.2016, 08:51     Чтение английского текста из файла,выделение слов и перевод
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
//Есть такая задача: считать из входного файла английский текст,
//выделить в нем все слова и записать в выходной файл с переводом.
///////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cctype>
#include <fstream>
#include <functional>
#include <iostream>
#include <iterator>
#include <map>
#include <string>
#include <vector>
///////////////////////////////////////////////////////////////////////////////
typedef std::string                             T_str;
typedef T_str                                   T_word;
typedef std::vector     < T_word    >           T_words;
typedef std::map        < T_word,   T_word  >   T_dictionary;
///////////////////////////////////////////////////////////////////////////////
T_word  trim_word( T_word   const   &   word )
{
    auto    begin_it    =   std::find_if
                                (
                                    word.begin  (),
                                    word.end    (),
                                    isalpha
                                );
 
    auto    end_it      =   std::find_if_not
                                (
                                    begin_it,
                                    word.end(),
                                    isalpha
                                );
 
    return  {
                begin_it,
                end_it
            };
}
///////////////////////////////////////////////////////////////////////////////
bool    successfully_input_text_from_file_and_set_words
    (
        T_str   const   &   filename,
        T_words         &   words
    )
{
    std::ifstream   ifile       ( filename  );
    bool            bool_res    { ifile     };
 
    if( bool_res )
    {
        T_words     crude_words;
 
        std::copy
            (
                std::istream_iterator< T_word >     ( ifile ),
                std::istream_iterator< T_word >     (),
                std::back_inserter                  ( crude_words )
            );
 
        T_words     words_with_empty;
 
        std::transform
            (
                crude_words.begin   (),
                crude_words.end     (),
                std::back_inserter  ( words_with_empty ),
                trim_word
            );
 
        std::copy_if
            (
                words_with_empty.begin  (),
                words_with_empty.end    (),
                std::back_inserter      ( words ),
 
                []                      ( auto  const   &   word )
                {
                    return  !word.empty();
                }
            );
 
        bool_res    =   !words.empty();
    }//if
 
    return  bool_res;
}
///////////////////////////////////////////////////////////////////////////////
bool    successfully_from_file_input_dictionary
    (
        T_str           const   &   filename,
        T_dictionary            &   dictionary
    )
{
    std::ifstream   ifile       ( filename  );
    bool            bool_res    { ifile     };
 
    if( bool_res )
    {
        T_word  L;
        T_word  R;
 
        while   (
                        ( ifile     >>  L )
                    &&  ( ifile     >>  R )
                )
        {
            dictionary[L]   =   R;
        }
 
        bool_res    =   !dictionary.empty();
    }//if
 
    return  bool_res;
}
///////////////////////////////////////////////////////////////////////////////
bool    successfully_for_words_and_dictionary_make_dictionary
    (
        T_words         const   &   words,
        T_dictionary    const   &   dictionary,
        T_dictionary            &   target_dictionary
    )
{
    bool    bool_res{};
 
    for( auto   const   &   word    :   words )
    {
        auto    it  =   dictionary.find( word );
        bool_res    =   it  !=  dictionary.end();
 
        if( !bool_res )
        {
            return  bool_res;
        }
 
        target_dictionary.insert( *it );
    }//for
 
    return  bool_res;
}
///////////////////////////////////////////////////////////////////////////////
void    in_file_write_dictionary
    (
        T_str           const   &   filename,
        T_dictionary    const   &   dictionary
    )
{
    const   char    SPACE_SYMB{'\t'};
    std::ofstream   ofile( filename );
 
    for( auto   const   &   L_and_R_words   :   dictionary )
    {
        ofile   <<  L_and_R_words.first
                <<  SPACE_SYMB
                <<  L_and_R_words.second
                <<  std::endl;
    }//for
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    const   T_str   INPUT_FILE_NAME         {"i.txt"};
    const   T_str   DICTIONARY_FILE_NAME    {"d.txt"};
    const   T_str   OUTPUT_FILE_NAME        {"o.txt"};
    T_words         eng_words;
    T_dictionary    eng_rus_dictionary;
 
    if  (
                successfully_input_text_from_file_and_set_words
                    (
                        INPUT_FILE_NAME,
                        eng_words
                    )
 
            &&  successfully_from_file_input_dictionary
                    (
                        DICTIONARY_FILE_NAME,
                        eng_rus_dictionary
                    )
        )
    {
        T_dictionary    text_dictionary;
 
        if  (
                successfully_for_words_and_dictionary_make_dictionary
                    (
                        eng_words,
                        eng_rus_dictionary,
                        text_dictionary
                    )
            )
        {
            in_file_write_dictionary
                (
                    OUTPUT_FILE_NAME,
                    text_dictionary
                );
 
            std::cout   <<  "Text is successfully translated."
                        <<  std::endl;
        }
        else
        {
            std::cout   <<  "In dictionary not found words for text."
                        <<  std::endl;
        }
    }
    else
    {
        std::cout   <<  "Bad input files!"
                    <<  std::endl;
    }
}
 
Текущее время: 16:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru