Доброй ночи, ребята. Столкнулся с проблемой. Не могу понять, почему cin.getline() начинает выполняться раньше, чем предыдущий cout напечатает свою строку. Манипулятор std::flush для сброса буфера присутствует. Имеется весьма простой пример:
#include <iostream>
int main()
{
size_t n;
char buf[100];
std::cout << "Input buffer size: " << std::flush;
std::cin >> n >> std::ws;
std::cout << "Enter word: " << std::flush;
std::cin.getline(buf, n - 1);
}
После компиляции g++ и запуска получаем:
Input buffer size: 100
my_word
Enter word:
Хотя строка Enter word должна печататься до запуска cin.getline(). В чём может быть проблема? Прошу прощения, если уже обсуждалось, ткните носом, пожалуйста. Поиск по форуму ничего не дал