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

Приведите пример перегруженного ввода / вывода с консольными потоками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В чём здесь ошибка? http://www.cyberforum.ru/cpp-beginners/thread988965.html
В чём здесь ошибка? #include "stdafx.h" #include <iostream> #include <string.h> using namespace std; int main(){ string text;
C++ [Qt 5] Задание:Найти наибольший общий делитель n и m Здравствуйте, вот, дали задание для первого курса. Не могли бы помочь? Если можно, не очень сложный код, чтобы понятно было Заранее спасибо) http://www.cyberforum.ru/cpp-beginners/thread988957.html
Добавления элемента в бинарное дерево C++
Уже создавал подобную тему , но так и не получилось разобраться до конца . Есть такая задача : нужно создать бинарное дерево , вывести его значения на экран . Потом нужно определить K - количество узлов, ключ которых больше заданного числа N. Добавить узел с ключом K. Вот мой вариант решения: #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; struct tree ...
Поиск цифр в массиве char C++
Задание: вводится строка из любых символов в ней ищутся цифры которые есть и выводятся только они непонимаю в чем ошибка ничего не выводит подскажите. #define _CRT_SECURE_NO_WARNINGS #include <string.h> #include <iostream> #include <conio.h> #define size 50 int main(){ char st; printf("vvedite stroky: ");
C++ Создать алгоритм http://www.cyberforum.ru/cpp-beginners/thread988938.html
Подскажите как можно сделать Дан список задач. У каждой задачи есть желательный срок выполнения (time min) и крайний срок (time max). Необходимо создать алгоритм сортировки данного списка по приоритетам (от срочных к не срочным), учитывая значения time min и time max. Или формулу, на входе у которой данные значения, а на выходе порядковый номер (приоритет выполнения) задачи в списке.
C++ Сформировать массив по условию элементы, которые присутствуют в массиве А, но отсутствуют в массиве В - пузырьком, линейный. помогите пожалуйста с решением! задание в C# подробнее

Показать сообщение отдельно
olia90
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 37
26.10.2013, 22:58  [ТС]     Приведите пример перегруженного ввода / вывода с консольными потоками
А если у меня например есть программа, а мне нужно сортировать, какой-то определенный массив экземпляров класса(пусть это будут целые числа например) с использованием перегруженных операций сравнения. Как это сделать здесь?
Не могу додуматься как сформировать массив из целых чисел?
Буду очень благодарна если поможете
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
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iterator>
#include <cctype>
 
typedef std::istream_iterator<std::string> input_str;
typedef std::ostream_iterator<std::string> output_str;
 
class Line
{
  public:
    Line();
    Line(const char *);
    Line(const std::string &);
    ~Line();
 
    std::string getData() const;
    void setData(const char *);
    void setData(const std::string &);
    void modifyInt(const int);
    bool firstWordEqual(const std::string &);
    bool firstWordEqual(const char *);
    std::string findInt() const;
 
  protected:
    std::string data;
};
 
std::ostream & operator<< (std::ostream &, const Line &);
std::istream & operator>> (std::istream &, Line &);
 
bool isInt(const std::string &);


cpp
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iterator>
#include <cctype>
#include "Line.h"
 
typedef std::istream_iterator<std::string> input_str;
typedef std::ostream_iterator<std::string> output_str;
 
 
Line::Line() : data()
{}
 
Line::~Line() 
{}
 
Line::Line(const char *c) : data(c)
{}
 
Line::Line(const std::string &s) : data(s)
{}
 
 
std::string Line::getData() const
{
    return data;
}
 
void Line::setData(const char *c)
{
    data.assign(c);
}
 
void Line::setData(const std::string &s)
{
    data = s;
}
 
void Line::modifyInt(const int x)
{
  
    std::istringstream ist(data);
    std::ostringstream ost;
    std::replace_copy(input_str(ist), input_str(), output_str(ost),
        this->findInt(), " " + std::to_string(x) + " " );
    data = ost.str();
}
 
bool Line::firstWordEqual(const std::string &key)
{
    std::istringstream ist(data);
    std::string word;  
    ist >> word;       
    return word == key;
}
 
bool Line::firstWordEqual(const char *key)
{
    std::istringstream ist(data);
    std::string word; 
    ist >> word;   
    return word == std::string(key);
}
 
std::string Line::findInt() const
{
 
    std::istringstream ist(data);
    input_str it = std::find_if(input_str(ist), input_str(), isInt);
    return (it == input_str() ? std::string() : *it);
}
 
std::ostream & operator<< (std::ostream &o, const Line &l)
{
    o << l.getData() << std::endl;
    return o;
}
 
std::istream & operator>> (std::istream &ist, Line &l)
{
 
    std::string str;
    std::getline(ist, str);
    l.setData(str);
    return ist;
}
 
bool isInt(const std::string &s)
{
    return std::all_of(s.begin(), s.end(), isdigit);
}
main.cpp
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
#ifndef Line_h_
#define Line_h_
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iterator>
#include <cctype>
#include "Line.h"
 
int main()
{  
    std::ifstream ifs("input.txt");
    if (!ifs) return 1;
    std::ofstream o("output.txt");
    Line line; 
    std::string key; 
    std::cout << "Enter word to search: ";
    std::cin >> key;
 
    while (ifs >> line)
    {
        if (line.firstWordEqual(key))
        {
            std::cout << line << std::endl; 
            if (!line.findInt().empty())
            {
                std::cout << "Would you like to change number of pieces? (y/n) ";
                char ch;
                std::cin >> ch;
                if (ch == 'y')
                {
                    int x;
                    std::cout << "Enter new pieces: ";
                    std::cin >> x;
                    line.modifyInt(x);
                }
            }
            o << line;
        }
    }
}
#endif
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru