Итак, целевой язык - 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; // переправляем очередной кусок информации в поток вывода}
Відповідь:
Ввести три числа и найти их сумму и произведение
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL , "Rus");
int a,b,c,sum,product;
cout << "a: ";
cin >> a;
cout << "b: ";
cin >> b;
cout << "c: ";
cin >> c;
sum = a+b+c;
product = a * b * c;
cout << "Сума = " << sum << endl;
cout << "Произведение = " << product << endl;
return 0;
}
Ввести три числа найти их сумму произведение и среднее арифметическое#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL , "Rus");
int a,b,c,sum,product;
float average;
cout << "a: ";
cin >> a;
cout << "b: ";
cin >> b;
cout << "c: ";
cin >> c;
sum = a+b+c;
product = a * b * c;
average = (a+b+c) / 3.;
cout << "Сума = " << sum << endl;
cout << "Произведение = " << product << endl;
cout << "Среднее арифметическое = " << average << endl;
return 0;
}
Ввести три числа и найти наибольшее из них
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL , "Rus");
int a,b,c,sum,product;
float average;
cout << "a: ";
cin >> a;
cout << "b: ";
cin >> b;
cout << "c: ";
cin >> c;
if(a > b && a > c){
cout << "Наибольшее число : " << a << endl;
}
if(b > a && b > c){
cout << "Наибольшее число : " << b << endl;
}
if(c > a && c > b){
cout << "Наибольшее число : " << c << endl;
}
return 0;
}
Ввести пять чисел и найти наибольшее из них
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL , "Rus");
int a,b,c,d,e,sum,product;
float average;
cout << "a: ";
cin >> a;
cout << "b: ";
cin >> b;
cout << "c: ";
cin >> c;
cout << "d: ";
cin >> d;
cout << "e: ";
cin >> e;
if(a > b && a > c && a > d && a > e){
cout << "Наибольшее число : " << a << endl;
}
if(b > a && b > c && b > d && b > d){
cout << "Наибольшее число : " << b << endl;
}
if(c > a && c > b && c > d && c > e){
cout << "Наибольшее число : " << c << endl;
}
if(d > a && d > b && d > c && d > e){
cout << "Наибольшее число : " << d << endl;
}
if(e > a && e > b && e > c && e > d){
cout << "Наибольшее число : " << e << endl;
}
return 0;
}
Итак, целевой язык - 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; // переправляем очередной кусок информации в поток вывода}