Использование cin в QtCreator

для школы, мы используем C++ в качестве языка выбора. В настоящее время я использую QtCreator в качестве IDE, и для его библиотеки GUI это замечательно. Школа использует Visual Studio.

однако большинство программ, которые мы пишем, используют cin и cout для ввода/вывода. cout отлично работает в качестве вывода, поскольку вы можете видеть, что он выводит в выводе приложения, но нет никакого способа предоставить cin, как если бы он был на консоли, как Visual Studio использует для своего c++.

An пример:

#include <iostream>
#include <string>
using namespace std;
int main() {
    string name;
    cout << "Enter name: ";
    cin >> name;
    cout << "Your name is " << name << endl;
}

есть ли способ использовать консоль или предоставить ввод cin, как в Visual Studio?

в настоящее время я запускаю OS X Leopard, если это имеет значение.

3 ответов


в настройках, в разделе окружающая среда, установите опцию "терминал" в /Applications/Utilities/Terminal.app, Как отметил Алекс Мартелли.

затем, на вкладке "проекты", в разделе Параметры запуска, установите флажок "запустить в терминале".

теперь QtCreator будет использовать встроенный терминал Apple.приложение вместо консоли Qt, позволяющее интерактивный ввод.


Если вы делаете приложения "консольного" стиля без GUI, Qt Creator может быть не самой подходящей IDE-почему бы не попробовать собственный XCode Apple, который, вероятно, поставляется на вашем DVD-диске ОС (как отдельный установщик), и в худшем случае может быть свободно загружен путем регистрации в Apple Developer Connection?

редактировать: поскольку OP указывает, что все, что им нужно, это расположение терминального приложения Mac, это просто: это /Applications/Utilities/Terminal.app.


#include <QCoreApplication>
#include <iostream>
#include <string>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    std::string name;
        std::cout << "Enter name: ";
        std::cin >> name;
        std::cout << "Your name is " << name << std::endl;


    return a.exec();
}