Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
1

Работа выходного потока

23.02.2017, 14:45. Показов 1048. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал следующий код:

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
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
template <class Type>
class Stack {
 
    public:
        Stack();
        void push(Type var);
        Type pop();
 
    private:
        static const unsigned int SIZE = 100;
        Type stack[SIZE];
        int top;
 
};
 
template <class Type>
Stack<Type>::Stack() : top(-1){
 
    //TODO
 
}
 
template <class Type>
void Stack<Type>::push(Type var) {
 
    stack[++top] = var;
 
}
 
template <class Type>
Type Stack<Type>::pop() {
 
    return stack[top--];
 
}
 
#include <iostream>
 
int main() {
 
    Stack<float> s1;
 
    s1.push(1111.1F);
    s1.push(2222.2F);
    s1.push(3333.3F);
 
    std::cout
        << "1: "
        << s1.pop()
        << std::endl
        << "2: "
        << s1.pop()
        << std::endl
        << "3: "
        << s1.pop()
        << std::endl;
 
    Stack<long> s2;
 
    s2.push(123123123L);
    s2.push(234234234L);
    s2.push(345345345L);
 
    std::cout
        << "1: "
        << s2.pop()
        << std::endl
        << "2: "
        << s2.pop()
        << std::endl
        << "3: "
        << s2.pop()
        << std::endl;
 
    system("PAUSE");
    return EXIT_SUCCESS;
 
}


Всё работает, только единственное, при выводе в консоль с помощью
C++
1
2
3
4
5
6
7
8
9
10
std::cout
        << "1: "
        << s1.pop()
        << std::endl
        << "2: "
        << s1.pop()
        << std::endl
        << "3: "
        << s1.pop()
        << std::endl;
значения из стека выводятся в обратном порядке (т.е. последний вошел - последний вышел). Причем методы pop() берут значения из стека нормально.
Получается, что при использовании cout подобным образом, сначала обрабатываются все вызовы функций (в данном случае pop()), формируется стек из возвращенных значений, и после значения берутся из стека в выходной поток?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2017, 14:45
Ответы с готовыми решениями:

Работа с MS Word - генерация выходного документа
Доброго времени суток! Передо мной стоит следующая задача: имеется файл шаблона в формате MS word...

Контроль выходного потока данных 1С с помощью CISCO
Подскажите пожалуйста как можно реализовать подсистему контроля выходного потока данных ...

Работа из потока
Как обратиться к компоненту на форме из потока? private void button1_Click(object sender,...

Работа с БД из потока
Как мне работать с компонентами FireDAC из потока TThread ? Через метод Synchronize() не вариант....

4
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
23.02.2017, 14:58 2
Вот так помогло:
C++
1
2
3
std::cout << "1: " << s1.pop() << std::endl;
std::cout << "2: " << s1.pop() << std::endl;
std::cout << "3: " << s1.pop() << std::endl;
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
23.02.2017, 15:14 3
Лучший ответ Сообщение было отмечено Nishen как решение

Решение

Раньше это называлось: "точки следования", сейчас как-то по другому: http://alenacpp.blogspot.ru/20... oints.html
1
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
23.02.2017, 15:22  [ТС] 4
DemolitionMan, я понимаю, что так помогает, но интересно, почему мой вариант работает именно так.
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
23.02.2017, 18:00 5
Цитата Сообщение от nd2 Посмотреть сообщение
сейчас как-то по другому
...
Sequence Points have been replaced by Sequenced Before and Sequenced After (and Unsequenced and Indeterminately Sequenced)
0
23.02.2017, 18:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2017, 18:00
Помогаю со студенческими работами здесь

Работа со строками из потока
Всем привет, помогите решить проблему. создаю файл, записываю в него строки, считываю и хочу...

Странная работа потока
Вообщем не могу понять в чем дело, есть программа: ...

Не верная работа потока
Творится не понятное с потоком. Приведу разметку и код: &lt;Window...

Работа с потоками ( 2 потока )
Только начинаю работать с потоками, вот практикуюсь. Подскажите что не так , почему в memo2 пусто...

Работа с формами из потока
Итак есть у нас фоновый поток первой формы, в нем открывается вторая форма, в которой нужно...

Работа с gui из потока
Можно ли работать с gui приложения непосредственно из потока(многопоточность)? Если нет, то есть ли...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru