В основном я запускаю простую программу в 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.
Проводя некоторые исследования, кажется, что cin and cout
поток на Xcode Version 8.3 Build 8E162
выпущен Mar 27, 2017
,
Унизить до Xcode Version 8.2.1
работает как шарм.
Вы уже решили свою проблему самостоятельно: 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;
}