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

Написать программу, которая считывает текст из файла и выводит в другой файл

03.12.2017, 11:09. Показов 15966. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, которая считывает текст из файла и выводит в другой файл и на экран сначала вопросительные, а затем восклицательные предложения.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.12.2017, 11:09
Ответы с готовыми решениями:

Написать программу, которая считывает текст из файла и записывает в другой файл
Написать программу, которая считывает текст из файла и записывает в другой файл все слова, встречающиеся в тексте несколько раз.

Написать программу которая считывает считывает текст из файла и записывает в другой слова состоящие не менее чем из 7 букв
Написать программу которая считывает считывает текст из файла и записывает в другой слова состоящие не менее чем из 7 букв Мне кажется...

Написать программу , которая считывает текст из файла и записывает в другой файл только предложения , не содержащие заданное с клавиатуры слово можешь
Написать программу , которая считывает текст из файла и записывает в другой файл только предложения , не содержащие заданное с клавиатуры...

9
31 / 27 / 20
Регистрация: 26.10.2017
Сообщений: 88
03.12.2017, 11:31
Уточняющий вопрос: сколько в одной строке предложений? 1 или более. И еще: в тексте восклицательные и вопросительные предложения только? Или есть еще повествовательные?
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,911
03.12.2017, 11:53
fgets + strchr('?') + strrchr('!')/strrchr('.') не устроит?
0
229 / 112 / 35
Регистрация: 25.11.2017
Сообщений: 389
03.12.2017, 12:27
Тут правильный вопрос задан - если не работает правило одно предложение одна строка, то получаются два крайних варианта: предложение началось в одной из предыдущих строк; в строке N>1 предложения. Поэтому strrchr() не помогут.
Собственно, у меня вопрос следующий - файл в память влезет или нет. Если лезет, то закачать в память и там уже обойти файл побайтно: указатель s ставим на начало отрезка (на первой итерации на начало буфера, далее на символ после знака препинания), указатель p к нему приравниваем и потом бежим p++ пока *p не будет '.', '?', '!'. Тогда все что между s и p - предложение. Можно завуалировать "бег" функцией strchr() но придется сравнивать что настало ранее - точка, восклицательный или вопросительный знак.
0
0 / 0 / 0
Регистрация: 12.11.2017
Сообщений: 72
03.12.2017, 13:56  [ТС]
Здравствуйте!
Цитата Сообщение от Евгений754 Посмотреть сообщение
сколько в одной строке предложений? 1 или более
Скорее всего несколько,штук 3-4.
Цитата Сообщение от Евгений754 Посмотреть сообщение
в тексте восклицательные и вопросительные предложения только? Или есть еще повествовательные?
Думаю,что из 3,например предложений,нужно сделать одно восклицательное и одно вопросительное,и одно обычное, и потом высести восклицательное и вопросительное.
Если будете писать программу,то максимально простым способом,используя функции и операторов,изучаемых примерно на первом курсе в техническом вузе^_^.
0
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
03.12.2017, 14:05
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
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
#include <iterator>
#define is_end(c)   ((c) == '.' || (c) == '!'  || (c) == '?')
#define is_space(c) ((c) == ' ' || (c) == '\t' || (c) == '\n') 
 
typedef std::vector<std::pair<std::string::iterator, std::string::iterator> > vector_p;
 
void output_p(std::ostream& _out, std::istream& _in){
    if(_in.eof() || _in.fail())
        return;
 
    std::ostringstream sout;
    std::copy(std::istreambuf_iterator<char>(_in), std::istreambuf_iterator<char>(),
              std::ostreambuf_iterator<char>(sout));
 
    std::string s;
    sout.str().swap(s);
 
    char c;
    const char ps[] = ".!?";
    vector_p vp1, vp2;
    std::string::size_type i, j;
    for(i = 0; (i = s.find_first_not_of(ps, i)) != std::string::npos; i = j){
        if((j = s.find_first_of(ps, i)) == std::string::npos)
            break;
 
        while((i < s.length()) && is_space(s[i]))
            ++i;
 
        c = s[j];
        while((j < s.length()) && is_end(s[j]))
            ++j;
 
        if(c == '?')
            vp1.push_back(std::make_pair(s.begin() + i, s.begin() + j));
        else if(c == '!')
            vp2.push_back(std::make_pair(s.begin() + i, s.begin() + j));
    }
 
    std::ostreambuf_iterator<char> iout(_out);
    vector_p::iterator it;
    for(it = vp1.begin(); it != vp1.end(); ++it){
        std::copy(it->first, it->second, iout);
        _out << std::endl;
    }
 
    for(it = vp2.begin(); it != vp2.end(); ++it){
        std::copy(it->first, it->second, iout);
        _out << std::endl;
    }
    vp1.clear();
    vp2.clear();
}
 
int main(void){
    //для примера: ввод из строки вывод в консоль
    char s[] = "Apl, java! Pascal, lisp? Go, qbasic... Hello World!!! EOF? End. CORBA???";
    std::istringstream sp(s);
    output_p(std::cout, sp);
 
    //ввод/вывод из файла
    std::ifstream fin("input.txt");
    std::ofstream fout("output.txt");
    output_p(fout, fin);
    fin.close();
    fout.close();
    std::cin.get();
    return 0;
}
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,911
03.12.2017, 15:45
Цитата Сообщение от spvert Посмотреть сообщение
Тут правильный вопрос задан - если не работает правило одно предложение одна строка, то получаются два крайних варианта: предложение началось в одной из предыдущих строк; в строке N>1 предложения. Поэтому strrchr() не помогут.
Приведите пример реального текста в котором перенос на новую строку осуществляется не по предложениям. Разве что требование ширины текста 80 символов или что-то в этом роде.
Цитата Сообщение от spvert Посмотреть сообщение
Собственно, у меня вопрос следующий - файл в память влезет или нет.
Кстати еще один вариант - отобразить файл на память и уже в ней искать все что нужно.
0
0 / 0 / 0
Регистрация: 12.11.2017
Сообщений: 72
03.12.2017, 16:37  [ТС]
Ребят,задачка еще актуальна...
0
229 / 112 / 35
Регистрация: 25.11.2017
Сообщений: 389
03.12.2017, 18:13
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Приведите пример реального текста в котором перенос на новую строку осуществляется не по предложениям.
Сделайте копипаст из любого вордового документа в plain text.
Встречный вопрос - вы много встречали печатных материалов или книг, где перевод строки осуществляется по окончании предложения?
Помнится, когда я писал редактор, в молодости, у меня вообще перевод строки встречался только в конце абзаца. А весь абзац одна строка длиной до 2000 знаков.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Кстати еще один вариант - отобразить файл на память и уже в ней искать все что нужно.
Ну что я и предложил. Считать файл в память и дальше рыскать указателями по памяти.
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,911
03.12.2017, 21:20
Цитата Сообщение от spvert Посмотреть сообщение
Сделайте копипаст из любого вордового документа в plain text.
Встречный вопрос - вы много встречали печатных материалов или книг, где перевод строки осуществляется по окончании предложения?
Помнится, когда я писал редактор, в молодости, у меня вообще перевод строки встречался только в конце абзаца. А весь абзац одна строка длиной до 2000 знаков.
Вот именно. Стоит ли отдельно обрабатывать случай когда перенос строки оказался в середине предложения?
Цитата Сообщение от spvert Посмотреть сообщение
Ну что я и предложил. Считать файл в память и дальше рыскать указателями по памяти.
Не совсем. Пусть ОС сама читает из файла столько сколько сочтет нужным. Не будет перерасхода по памяти
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2017, 21:20
Помогаю со студенческими работами здесь

написать программу, которая считывает текст из файла и выводит на экран
написать программу, которая считывает текст из файла и выводит на экран только те предложения, состоящие из заданного количества слов

Написать программу, которая считывает текст из файла и выводит на экран количество гласных букв в строке текст
Написать программу, которая считывает текст из файла и выводит на экран количество гласных букв в строке текста

Написать программу, которая считывает текст из файла и выводит его на экран
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова. Пожалуйста...

Написать программу, которая считывает текст из файла и выводит его на экран
Вот 5 заданий: 1)Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке. 2)....

Написать программу, которая считывает текст из файла и выводит на экран только цитаты
Вот код: #include &lt;fstream.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; int main() { clrscr(); ifstream fin(&quot;text.txt&quot;, ios::in...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru