Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 19.02.2020
Сообщений: 10

Скопировать из файла FILE1 в файл FILE2 все строки, в которых содержится не менее двух одинаковых слов

19.02.2020, 14:27. Показов 5084. Ответов 2

Студворк — интернет-сервис помощи студентам
Помогите решить задачу, пожалуйста. Условие: Скопировать из файла FILE1 в файл FILE2 все строки, в которых содержится не менее двух одинаковых слов. Определить номер слова, в котором больше всего цифр

Добавлено через 3 часа 10 минут
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
int first()
{
    ifstream in("f1_first.txt");
    ofstream out("f2_first.txt");
    string line, tmpWord, word;
    while (getline(in, line))
    {
        stringstream ss(line);
        bool hasEquals = false;
        ss >> tmpWord;
        while (ss >> word)
        {
            if (word == tmpWord)
            {
                hasEquals = true;
                break;
            }
        }
        if (hasEquals) out << line << endl;
    }
    in.close();
    out.close();
    return 0;
}
Тут есть сравнение первого слова с остальными словами в строке и последующая запись во второй файл, но как подставить на место tmpWord следующее слово?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.02.2020, 14:27
Ответы с готовыми решениями:

Скопировать из файла F1 в файл F2 все строки в которых нет одинаковых слов
Скопировать из файла F1 в файл F2 все строки в которых нет одинаковых слов

Файл: Скопировать из File_1 в File_2 все строки, в которых нет одинаковых слов...
Скопировать из File_1 в File_2 все строки, в которых нет одинаковых слов. Определить количество гласных букв в первой строке файла File_2

Заполнить заранее созданный file1, и из этого файла скопировать содержимое в заранее созданный file2
Суть проги в том,чтобы я заполнил заранее созданный file1 из консоли и из этого файла содержимое скопировалось в заранее созданный file2,но...

2
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
19.02.2020, 15:24
Лучший ответ Сообщение было отмечено KriSWhitch как решение

Решение

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
#include <iostream>
#include <unordered_set>
#include <string>
#include <fstream>
#include <sstream>
 
int main()
{
    std::ifstream is("input.txt");
    std::ofstream os("output.txt");
    if (!is || !os) return 1;
    std::string str, word;
    std::unordered_set<std::string> uset;
 
    while (std::getline(is, str)) {
        uset.clear();
        std::stringstream ss(str);
 
        while (ss >> word) {
            if (!uset.insert(word).second) {
                os << str << '\n';
                break;
            }
        }
    }
 
    is.close();
    os.close();
    return 0;
}
2
0 / 0 / 0
Регистрация: 19.02.2020
Сообщений: 10
19.02.2020, 21:21  [ТС]
Большое спасибо за помощь!

Добавлено через 52 минуты
Вот итоговый код задания, в нём так же есть возможность вывести слово с максимальным количеством букв латинских

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
int first()
{   //копирование из файла F1 в файл F2 строк, которые содержат не менее двух одинаковых слов
    ifstream is("f1_first.txt");
    ofstream os("f2_first.txt");
    if (!is || !os) return 1;
    string str, word;
    unordered_set<string> uset;
    while (getline(is, str)) {
        uset.clear();
        stringstream ss(str);
 
        while (ss >> word) {
            if (!uset.insert(word).second) {
                os << str << '\n';
                break;
            }
        }
    }
    is.close();
    os.close();
    //Определяем номер слова, в котором больше всего цифр
    ifstream isss("f1_first.txt");
    string str1;
    while (getline(isss, str1)) {
        string s, word, mostDig, mostLet;
        int i, count_letters, count_digits, max_letters = 0, max_digits = 0;
        stringstream words(str1);
        while (isss >> word) {
            i = 0;
            count_letters = 0;
            count_digits = 0;
            while (word[i])
            {
                if (word[i] >= '0' && word[i] <= '9') count_digits++;
                if ((word[i] >= 'a' && word[i] <= 'z') || (word[i] >= 'A' && word[i] <= 'Z')) count_letters++;
                i++;
            }
            if (count_digits > max_digits) { max_digits = count_digits; mostDig = word; }
            if (count_letters > max_letters) { max_letters = count_letters; mostLet = word; }
        }
        cout << "Word with max digits: " << mostDig;
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2020, 21:21
Помогаю со студенческими работами здесь

Скопировать текстовые файлы file1 file2 file3 file4 в домашней папке в директорию dir2 с использованием шаблона имен
Как скопировать текстовые файлы file1 file2 file3 file4 в домашней папке в директорию dir2 с использованием шаблона имен? Пробовал сp *.txt...

Скопировать из файла F1 в файл F2 все строки, в которых есть слова, совпадающие с первым словом
Скопировать из файла F1 в файл F2 все строки, в которых есть слова, совпадающие с первым сло-вом. Определить количество согласных букв в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK сделайте это, JDK, то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Перейдите по ссылке:. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru