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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
#1

Операторы ввода и вывода - C++

15.08.2012, 14:19. Просмотров 958. Ответов 7
Метки нет (Все метки)

Допустим есть класс

C++
1
2
3
4
5
6
7
8
9
10
class Checked
{
public:
    
private:
    double id;
    int *beg;
    std::pair<std::strin, std::strin> par;
    std::vector< std::pair<std::string,std::strin>* > vec;
};
кто может напишите с объяснениями операторы ввода и вывода
Буду благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2012, 14:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Операторы ввода и вывода (C++):

Операторы присваивания, ввода- вывода. Операторы ветвления, выбора - C++
Даны два ненулевых числа. Найти их сумму, разность, произведение, частное, остаток и целую часть от деления. Добавлено через 8 часов...

Операторы ввода вывода в С++ - C++
ребят дайте пожалуйста понятную ссылку что бы можно было почитать и выучить операторы ввода вывода пожалуйста...

Операторы ввода/вывода - C++
Всем привет! Было задание: сделать сложение двух окружностей, н.р. int main() { Circle c1(1,3,3); Circle c2(1,4,4); ...

Операторы ввода вывода - C++
Сама задача. Реализовать класс «бинарное дерево» рекурсивно реализовав в нем метод добавления элемента, а также (нерекурсивно) метод поиска...

Перегрузите операторы ввода и вывода - C++
Описание класса-шаблона должно включать операторы &lt;&lt;, &gt;&gt;, конструктор копирования, а также другие операторы и функции, необходимые для...

Не читаются операторы ввода вывода - C++
#include &quot;stdafx.h&quot; #include &lt;math.h&gt; #include &lt;iostream&gt; using namespace std; void main() { int q, a; ...

7
-=ЮрА=-
Заблокирован
Автор FAQ
15.08.2012, 14:25 #2
Цитата Сообщение от DaskOFF Посмотреть сообщение
кто может напишите с объяснениями операторы ввода и вывода
Буду благодарен.
- почти всё как у тебя
Переменное число аргументов
1
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
15.08.2012, 14:33 #3
Цитата Сообщение от DaskOFF Посмотреть сообщение
std::strin
или std::string
0
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
15.08.2012, 14:58  [ТС] #4
Цитата Сообщение от yuron_477 Посмотреть сообщение
или std::string
string, ошибся

Добавлено через 5 минут
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- почти всё как у тебя
Переменное число аргументов
честно говоря не совсем понял, если не сложно можешь прокомментировать
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
template <typename T>
bool CArgList::operator <<(T arg)
{
    Argument pArg;
    stringstream ss;ss<<arg;
    pArg.stype    = typeid(T).name();
 
    bool flag = true;
    if(ss>>pArg.value)
        vec.push_back(pArg);
    else
        flag = false;
    return flag;
}
 
bool CArgList::operator >>(Argument &pArg)
{
    bool flag = true;
    if(vec.begin() + i < vec.end())
    {
        it = vec.begin() + i;
        pArg = (*it);
        i  = i + 1;
    }
    else
        flag = false;
    return flag;
}
в теме обговаривались операторы ввода\вывода возвращающие объект типа istream\ostream
0
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
15.08.2012, 17:29 #5
Оператор вывода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
ostream & operator<<(ostream & os, const Checked & Ch)
{
    os<<"double: "<<Ch.id<<endl;
    os<<"int*: ";
    for (int i = 0; i<sizeof (Ch.beg); i++)
        os<<Ch.beg[i]<<" ";
    cout<<endl;
    os<<"par.first: "<<Ch.par.first<<" ,par.second: "<<Ch.par.second<<endl;
    for (int i = 0; i<Ch.vec.size(); i++)
        os<<"vec: "<<Ch.vec[i]->first<<", "<<Ch.vec[i]->second<<endl;
    return os;
}
1
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
15.08.2012, 20:01  [ТС] #6
Цитата Сообщение от yuron_477 Посмотреть сообщение
C++
1
2
    for (int i = 0; i<sizeof (Ch.beg); i++)
        os<<Ch.beg[i]<<" ";
объясни пожалуйста вот этот кусок
0
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
15.08.2012, 21:34 #7
Поправочка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
ostream & operator<<(ostream & os, const Checked & Ch)
{
    os<<"double: "<<Ch.id<<endl;
    os<<"int*: ";
    for (int i = 0; i<sizeof Ch.beg/sizeof (int); i++)
        os<<Ch.beg[i]<<" ";
    os<<endl;
    os<<"par.first: "<<Ch.par.first<<" ,par.second: "<<Ch.par.second<<endl;
    for (int i = 0; i<Ch.vec.size(); i++)
        os<<"vec: "<<Ch.vec[i]->first<<", "<<Ch.vec[i]->second<<endl;
    return os;
}
цикл for для массивов:
C++
1
2
3
4
5
6
7
8
9
10
11
int arr[] = {9, 8, 7, 6, 5};
int n = 5;
int* parr = &n;
cout<<"int arr[]: ";
for (int i = 0; i<sizeof arr/sizeof (int); i++)
    cout<<arr[i]<<" ";
cout<<endl;
cout<<"int* parr: ";
for (int i = 0; i<sizeof parr/sizeof (int); i++)
    cout<<parr[i]<<" ";
cout<<endl;
Добавлено через 1 час 6 минут
Вот попробовал весь код дописать, надеюсь чем-то поможет:
код
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
class Checked
{
private:
    double id;
    int *beg;
    pair<string, string> par;
    vector<pair<string, string>* > vec;
public:
    Checked(int n1 = 0, int* n2 = nullptr,
        pair<string, string> p = pair<string, string>("None", "None"),
        vector<pair<string, string>* > v = vector<pair<string, string>* >())
        : id(n1), par(p), vec(v)
    {
        beg = new int;
        beg = n2;
    }
    ~Checked()
    {
        delete beg;
    }
    friend ostream & operator<<(ostream & os, const Checked & Ch);
    friend istream & operator>>(istream & is, Checked & Ch);
};
 
ostream & operator<<(ostream & os, const Checked & Ch)
{
    os<<"double: "<<Ch.id<<endl;
    os<<"int*: "<<*Ch.beg<<endl;  // здесь, всетаки, for (int i = 0; i<sizeof Ch.beg/sizeof (int); i++) не проходит
                                  // надо в классе хранить еще и размер передаваемого массива
    os<<"par.first: "<<Ch.par.first<<" ,par.second: "<<Ch.par.second<<endl;
    for (int i = 0; i<Ch.vec.size(); i++)
        os<<"vec: "<<Ch.vec[i]->first<<", "<<Ch.vec[i]->second<<endl;
    return os;
}
istream & operator>>(istream & is, Checked & Ch)
{
    cout<<"Введите double: ";
    while (!(is >> Ch.id))                
    {
        cin.clear();                    
        while ( is.get() != '\n' ) ;   
        cout << "Ошибка! Введите число: ";
    }   
    cout<<"Введите int: ";
    int temp;
    while (!(is >> temp))                
    {
        cin.clear();                    
        while ( is.get() != '\n' ) ;   
        cout << "Ошибка! Введите целое число: ";
    }   
    while ( is.get() != '\n' )
        continue;
    delete Ch.beg;
    Ch.beg = new int(temp);
    cout<<"Введите pair.first: ";
    getline(is, Ch.par.first);
    cout<<"Введите pair.second: ";
    getline(is, Ch.par.second);
    Ch.vec.push_back(&Ch.par);
    return is;
}
 
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
    
    pair<string, string> par1("First_1", "Second_1");
    pair<string, string> par2("First_2", "Second_2");
    vector<pair<string, string>* > vec;
    vec.push_back(&par1);
    vec.push_back(&par2);
    int* n = new int(5);
 
    Checked test_1(100, n, par1, vec);
    cout<<"test_1:\n\n"<<test_1<<endl;
 
    Checked test_2;
    cin>>test_2;
    cout<<"test_2:\n\n"<<test_2<<endl;
 
    system("pause");
    return 0;
}
1
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
15.08.2012, 21:40  [ТС] #8
спасибо за труды, завтра разберу полный код
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2012, 21:40
Привет! Вот еще темы с ответами:

Операторы ввода-вывода(Что не так?) - C++
#include &lt;iostream&gt; using namespace std; void main(){ int hh= 5; cin&gt;&gt;5; cout&lt;&lt;&quot;Hello word&quot;; int h=10; cout&lt;&lt;h; ...

Классы. Перегруженные операторы ввода-вывода - C++
Есть класс book, который описывает 3 типа данных, то есть автор - char, название книги - char, год - int. Нужно использовать...

Операторы ввода/вывода для чайников - C++
Как думаете если использовать оператор ввода или вывода cout или cin это не покажется что человек чайник??? И еще вы обычно какими...

операторы ввода и вывода, форматы используемые в этих операторах {c++} - C++
операторы ввода и вывода, форматы используемые в этих операторах... помогите плиз очень надо.... особенно форматы..... заранее...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
15.08.2012, 21:40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru