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

Программа дублирует вывод. Переводчик, работа с файлами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить количество строк, содержащих только положительные элементы http://www.cyberforum.ru/cpp-beginners/thread760786.html
Дана целочисленная прямоугольная матрица. Определить: 1) количество строк, содержащих только положительные элементы; 2) номер столбца, в котором находится самая длинная серия одинаковых элементов.
C++ Циклически сдвинуть массив на 1 элемент влево Вводится массив. Циклически сдвинуть его на 1 элемент влево, т.е. каждый элемент сдвинуть на одну позицию влево, а крайний левый элемент поместить в крайнюю правую позицию http://www.cyberforum.ru/cpp-beginners/thread760785.html
C++ Цикл с параметром (for): Найти сумму чисел в диапазоне [a;b], которые при делении на 5 дают остаток 3
Вводятся числа a и b. Найти сумму чисел в диапазоне , которые при делении на 5 дают остаток 3.
классы и заголовочные файлы C++
Было у меня два класса и всё в одном cpp-файле реализовано. Потом я решил что неплохо было их в разные файлы распихать и еще заголочных файлов добавить (хз зачем мне это понадобилось, раньше таким не занимался). Тут и начались проблемы.. Проблема в том, что в описании одного класса содержится указатель на другой класс и обратно. Выглядит всё это примерно так: main.cpp #include "func1.h"...
C++ очередь на основе циклического масива http://www.cyberforum.ru/cpp-beginners/thread760747.html
Нужно реализовать АТД Очередь на основе циклического массива, реализовать дополнительно метод поиска и удаления минимального элемента из очереди
C++ Определение количества слов в тексте, которые состоят из не повторяющихся символов Помогите пожалуйста написать программу. Я только начинаю осваивать C++ Дан текст, состоящий из слов. Под словом понимается последовательность литер, не содержащих пробелов и знаков препинания. Напечатать все слова, состоящие из не повторяющихся символов. подробнее

Показать сообщение отдельно
iQuality
Сообщений: n/a

Программа дублирует вывод. Переводчик, работа с файлами - C++

13.01.2013, 20:50. Просмотров 255. Ответов 0
Метки (Все метки)

Программа работает, но меня интересует одна особенность - не могу понять почему, после переведенного слова(с англ на рус) оно выводит сначало переведенное, потом его оригинал?
С оператором break(которое закомментировано в коде), для выхода из цикла проверки текущего слова со словами из библиотеки, оно не дублирует вывод.


Например без оператора break: текст в файле "EnterTheText.txt" - hi my name is Dima
Как результат получаем в файл "translated.txt" перевод: hi привет my мое name имя is это Dima

с оператором break - выводит всё коррекно: привет мое имя это Dima

Сам код:
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
#include <fstream>
using std::ifstream;
using std::ofstream;
#include <string>
using std::string;
 
int main()
{
    ifstream lib("library.txt");
    ifstream input("EnterTheText.txt");
    ofstream transl("translated.txt");
    string eng, rus, temp;
 
    while(input >> temp)
    {
        while(!lib.eof())
        {
            lib >> eng >> rus;
            if(temp == eng)
            {
                transl << rus << " ";
                cout << rus << " ";
                //break;
            }
            else if(temp == rus)
            {
                transl << eng << " ";
                //break;
            }
            
        }
    if (temp != eng && temp != rus) transl << temp << " "; // если не нашел перевода -
    lib.seekg( 0 ); //переустановить на начало файла      // выводит не переведенное слово.
    lib.clear(); // сбросить eof для следующего цикла
    }
 
    transl.close();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru