Итак, целевой язык - C++. Это значит мы - радостные обладатели технологии потоков, с коей мы будем производить весь ввод/вывод как при работе с файлами, так и при работе со стандартным вводом/выводом (консолью).
Ну а раз уж мы работаем с потоками, то будем делать это красивенько: создадим класс-обёртку для потока ввода, цель которого - поиск в этом потоке цитат и отправка их на поток вывода (который мы передаём).
[!] Стоит отметить, что по заданию не сказано, что есть разница между ' и ". Поэтому будем считать их одинаковыми.
[!] Внимание! Рядом с исполняемым файлом надо создать текстовый файл data.txt c текстом и цитатами.
Код
С++11
#include <iostream>#include <fstream>using std::cout;class QuotesFinder { std::istream &in_stream; bool is_it_in_quote = false;public: QuotesFinder() = delete; QuotesFinder(QuotesFinder&&) = default; QuotesFinder(QuotesFinder const&) = default; explicit QuotesFinder(std::istream &is) : in_stream(is) {} [[nodiscard]] bool eof() const { return in_stream.eof(); } // Вот тут происходит вся магия QuotesFinder& operator >> (std::ostream& out_stream) { char buffer; in_stream.get(buffer); //Получаем очередной символ из потока if (buffer == '\"' || buffer == '\'') { if (is_it_in_quote) { is_it_in_quote = false; out_stream << buffer; out_stream << "\n"; return *this; } is_it_in_quote = true; } if (is_it_in_quote) { out_stream << buffer; } return *this; }};int main() { std::ifstream file("data.txt"); // Открываем файл if (!file.is_open()) { cout << "File is not exits!"; return 1; } QuotesFinder finder(file); // Создаём обёртку из файлового потока while (!finder.eof()) // Пока не достигли конца потока finder >> cout; // переправляем очередной кусок информации в поток вывода}
горячий хлеб влияет на глаза, язык, обоняние, кожу. если его нюхать, то будет запах, если смотреть на него, то его пар может попасть в глаза, ну и остальное ясно
во время сна наши глаза закрыты и мы ничего не видим, уши продолжают слышать, потому что от громкого звука и т.п. человек может проснуться, язык и нос также реагируют на различные вещи, кожа безусловно, тоже чувствует прикосновения
замороженная роза воздействует на кожу, если держать ее, то кожа станет холоднее, если облизать языком, то будет также холодно, на уши никак не влияет, глазами мы видим, запах по сути не передает
река мокрая, может воздействовать на глаза, кожу, язык, потому что влажно. уши (если нырнуть в реку, то слышать будем приглушенно), ну река бывает пахнет, но это не всегда.
Итак, целевой язык - C++. Это значит мы - радостные обладатели технологии потоков, с коей мы будем производить весь ввод/вывод как при работе с файлами, так и при работе со стандартным вводом/выводом (консолью).
Ну а раз уж мы работаем с потоками, то будем делать это красивенько: создадим класс-обёртку для потока ввода, цель которого - поиск в этом потоке цитат и отправка их на поток вывода (который мы передаём).
[!] Стоит отметить, что по заданию не сказано, что есть разница между ' и ". Поэтому будем считать их одинаковыми.
[!] Внимание! Рядом с исполняемым файлом надо создать текстовый файл data.txt c текстом и цитатами.
КодС++11
#include <iostream>#include <fstream>using std::cout;class QuotesFinder { std::istream &in_stream; bool is_it_in_quote = false;public: QuotesFinder() = delete; QuotesFinder(QuotesFinder&&) = default; QuotesFinder(QuotesFinder const&) = default; explicit QuotesFinder(std::istream &is) : in_stream(is) {} [[nodiscard]] bool eof() const { return in_stream.eof(); } // Вот тут происходит вся магия QuotesFinder& operator >> (std::ostream& out_stream) { char buffer; in_stream.get(buffer); //Получаем очередной символ из потока if (buffer == '\"' || buffer == '\'') { if (is_it_in_quote) { is_it_in_quote = false; out_stream << buffer; out_stream << "\n"; return *this; } is_it_in_quote = true; } if (is_it_in_quote) { out_stream << buffer; } return *this; }};int main() { std::ifstream file("data.txt"); // Открываем файл if (!file.is_open()) { cout << "File is not exits!"; return 1; } QuotesFinder finder(file); // Создаём обёртку из файлового потока while (!finder.eof()) // Пока не достигли конца потока finder >> cout; // переправляем очередной кусок информации в поток вывода}У человека есть 5 органов чувств
глаза (зрение),
уши (слух),
язык (вкус),
нос (обоняние)
кожа (осязание, ощущение боли, температуры)
горячий хлеб влияет на глаза, язык, обоняние, кожу. если его нюхать, то будет запах, если смотреть на него, то его пар может попасть в глаза, ну и остальное ясно
во время сна наши глаза закрыты и мы ничего не видим, уши продолжают слышать, потому что от громкого звука и т.п. человек может проснуться, язык и нос также реагируют на различные вещи, кожа безусловно, тоже чувствует прикосновения
замороженная роза воздействует на кожу, если держать ее, то кожа станет холоднее, если облизать языком, то будет также холодно, на уши никак не влияет, глазами мы видим, запах по сути не передает
река мокрая, может воздействовать на глаза, кожу, язык, потому что влажно. уши (если нырнуть в реку, то слышать будем приглушенно), ну река бывает пахнет, но это не всегда.