web-dev-qa-db-ja.com

Qt Creatorを使用したコンソール入力

QtCreatorを使用して、Mac上で非常にシンプルなアプリを開発しています。

これはコンソールアプリケーションであり、ユーザーにその名前を入力してもらい、その名前を表示します。コードは次のとおりです。

#include <iostream>

int main(int ArgC, char* ArgV[])
{
    char Name[1000];

    std::cout << "Type your name : ";
    std::cin >> Name;

    std::cout << "Hello " << Name << "\n";
    return 0;
}

QtCreatorでこのアプリを実行すると、「アプリケーションの出力」タブに「名前を入力してください:」という文字列が表示されます。しかし、テキストを入力してEnterキーを押しても、何も起こりません。

どうしましたか ?

31
Jérôme

私は解決策を見つけました。 Qt Creator 1.3.0(Mac OS X)で、私がしなければならないことは次のとおりです。

  • [プロジェクト]-> [実行設定]、[ターミナルで実行]をオンにします(Ropezに感謝)
  • Qt Creator-> Preferences:Environnement:General:Terminal:XTermへのパス全体を配置する必要がありました。私の設定では、/usr/x11/bin/xterm -e

今、すべてが正常に動作しています!

29
Jérôme

[プロジェクト]-> [実行設定]に移動し、[ターミナルで実行]がオンになっていることを確認します。

ところで:

std::cin >> Name;

おそらくあなたが望むものではありません。単一のトークン(通常は名のみ)を読み取ります。 getline 、または string version をご覧ください。

9
Ropez

Jeromesソリューションが適切です。私はあなたに別の選択肢を与えることができますが。 X11を(何らかの理由で)同じ位置(QtCreator-> Preferences-> Environment:General:Terminal)で使用したくない場合は、次のようにTerminalアプリケーションへのパスを指定できます:/ Applications/Utilities/Terminal.app/Contents/MacOS/Terminal

楽しい!

2
kostia

Windows向けのソリューション。

.proファイルに以下を追加します。

QT -= core gui
TEMPLATE = app
CONFIG += console

[プロジェクト]-> [実行設定]に移動し、[ターミナルで実行]がオンになっていることを確認します。

2
Sid

MacベースのQt 2.4.0の場合、[ようこそ]、[編集]、[デザイン]と同じ垂直線に沿った[デバッグ]の下にある[プロジェクト]垂直タブをクリックします。 [ターゲット]-> [実行]で、[ターミナルで実行]がオンになっていることを確認します。

1
user3111525

"Macでターミナルエミュレータ 'xterm'を起動できません"問題が発生したため、settingsEnvironmentに移動して[ Terminalテキストフィールドの横にあるReset "ボタン。

何らかの理由でデフォルトで「xterm -e」と表示されましたが、リセット後は「/ usr/X11/bin/xterm -e」の絶対パスになりました。

その後、コンソールアプリは正常に動作しました。

1
Ali