Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
3 / 3 / 2
Регистрация: 19.02.2014
Сообщений: 142
1

Вывод содержимого vector при наличии бесконечного цикла

21.08.2015, 16:14. Показов 692. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
День добрый!
Возникла проблема с выводом содержимого vector-а. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
 
std :: vector <int> Test;
 
int main() {
    Test.push_back(1);
    Test.push_back(2);
    Test.push_back(3);
    
    std :: cout << "Test" << " ";
    std :: cout << "Test" << " ";
    std :: cout << "Test" << std :: endl;
    
    std :: cout << Test.at(0) << " ";
    std :: cout << Test.at(1) << " ";
    std :: cout << Test.at(2);
    
    while (true) {}
    
    return 0;
}
Дело в том, что надпись "Test" нормально выводится три раза, а потом программа зависает в бесконечном цикле, но вот содержимое vector-а почему-то выводится только, когда программа завершилась. Причём, если заменить
C++
1
2
3
std :: cout << Test.at(0) << " ";
std :: cout << Test.at(1) << " ";
std :: cout << Test.at(2);
на
C++
1
2
3
std :: cout << Test.at(0) << std :: endl;
std :: cout << Test.at(1) << std :: endl;
std :: cout << Test.at(2) << std :: endl;
то всё нормально выводится.
С чем это может быть связано?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.08.2015, 16:14
Ответы с готовыми решениями:

При разыменовании содержимого контейнера vector<string*> возникает ошибка
Добрый день и с Новым Годом, господа! Обращаюсь к вам со странной проблемой - вылетает при попытке...

Задать бэкграунд ячейке при наличии содержимого
Здравствуйте. Есть, например, такая таблица: Как с помощью скрипта задать бэкграунд для тех...

Скорость цикла for при наличии и отсутствии break
Возможно сейчас я задам вопрос, на который имеется простой и очевидный ответ. Не могу себя отнести...

В цикле for происходит только одна итерация при наличии вложенного цикла
не подскажите, нужно перебрать варианты перемножения переменных, в php и python у меня подобные...

3
2328 / 1817 / 751
Регистрация: 27.07.2012
Сообщений: 5,365
21.08.2015, 16:18 2
std :: endl помимо перевода строки, сбрасывает буфер потока вывода. Предположу, если его не вызвать, часть буфера так и будет ожидать вывода в консоль, пока не завершится след.инструкция. А она никогда не завершится...
1
Эксперт по математике/физикеЭксперт С++
2150 / 1400 / 406
Регистрация: 16.05.2013
Сообщений: 3,575
Записей в блоге: 6
21.08.2015, 16:19 3
Цитата Сообщение от Devilox Посмотреть сообщение
С чем это может быть связано?
Со сбросом буфера. std::endl сбрасывает его.
Вставьте перед циклом явный сброс:
C++
1
2
std::cout.flush();
while (true) {}
1
3 / 3 / 2
Регистрация: 19.02.2014
Сообщений: 142
21.08.2015, 16:25  [ТС] 4
Спасибо! Работает.
0
21.08.2015, 16:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2015, 16:25
Помогаю со студенческими работами здесь

Запуск бесконечного цикла при работе с вебсокетами
Приложение работает с вебсокетами. Приходит сообщение, после которого на сервере надо запустить...

Вылетает при обработке цикла с vector
Доброго времени суток. Столкнулся с такой проблемой: for( vector&lt;Rect&gt;::const_iterator r =...

Найти сумму ряда при использовании бесконечного цикла
Будьте добры помогите пожалуйста! Цикл c использованием конструкции Do While – Loop, или Do –...

Выход из бесконечного цикла в GraphABC при нажатии клавиши (любой)
Здравствуйте! У меня такая проблема: Дан цикл: uses GraphABC repeat ...... until...


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

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