C ++ не показывает cout в консоли Xcode, но отлично работает в терминале

В основном я запускаю простую программу в Xcode Version 8.3 (8E162)

#include <iostream>
using namespace std;
int main() {
int a;
cout << "What is your age: ";
cin >> a;
cout << "My age is " << a << endl;
return 0;
}

Я видел разные вопросы о cout нужно промыть и все std :: cout не печатает а также Отладчик XCode не показывает вывод Cout C ++. Отладчик Xcode не печатает cout пока я не положу \n or endl, Но он отлично работает на терминале.

Что если бы мне пришлось использовать What is your age: и пользователь вводит возраст в одной строке, а не на следующей строке \n and endl?

Это то, что показывает отладчик Xcode после сборки и запуска

Это то, что показывает отладчик Xcode после сборки и запуска

Это когда пользователь вводит и отображает результат

Это когда пользователь вводит и отображает результат

Это на терминале, и это именно то, что мне нужно вывод на отладчик XCode.

Это на терминале

1

Решение

Проводя некоторые исследования, кажется, что cin and cout поток на Xcode Version 8.3 Build 8E162 выпущен Mar 27, 2017,
Унизить до Xcode Version 8.2.1 работает как шарм.

2

Другие решения

Вы уже решили свою проблему самостоятельно: std::cout использует буферизованный вывод и всегда должен сбрасываться. Вы можете достичь этого, используя std::cout << "What is your age? << std::flush, используя std::cout.flush() или добавив разрыв строки как std::endl который неявно мигает.

Полное решение может выглядеть так:

#include <iostream>

using namespace std;

int main() {
int a;
cout << "What is your age: " << flush;
cin >> a;
cout << "My age is " << a << endl;
return 0;
}
0

По вопросам рекламы [email protected]