2016-05-15 3 views
0

文字列変数を宣言しようとしていて、 "hello"というテキストを入れようとしていますが、実行されません。私は間違って何をしていますか?文字列に値を代入できません(Eclipse CDT、MinGW、C++)

#include <iostream> 
#include <string> 

using namespace std; 

int main() { 

    cout << "Hello!" << endl; 

    int b = 12; 
    cout << b << endl;  

    string a; 
    a = "hey"; 

    return 0; 
} 

プログラムのビルドは、(私が知る限り)うまく機能します。このプログラムを実行すると、Eclipseのコンソールウィンドウに何も表示されず、一番上に「(終了値:-1 073 741 511)IfStatement.exe [C/C++アプリケーション] C:\ Users \ My_Username \ OneDrive \ Programming \ Eclipse \ IfStatement \ Debug \ IfStatement.exe(15.05.2016、01.53)」を選択します。

私はこの部分を削除する場合:

a = "hey"; 

すべて期待通りに動作します。それは何とかプログラムを台無しにしている文字列の実際の値割り当てです。何が起こっている?

ありがとうございました。詳細が必要な場合はお気軽にお問い合わせください。

+0

私のためにうまく動作しますhttp://ideone.com/i35t40 –

+0

これは変だけど、設定やインストール中に私の最後に何かを走らせることができるだろうか?他のプログラムはうまくいくようですが、文字列値を文字列変数に代入することはできません。 –

+0

私はこの正確なプログラムをVisual Studioで試してみましたが、完全に動作します。私はEclipseの問題点を本当に知っていませんが、MinGWまたはEclipseをインストールまたは設定するときに間違いを犯した可能性があります。 –

答えて

0

これは、プログラムがreturn文を実行しており、出力を見る前に終了しているために起こります。 return文の前にgetchar()呼び出しを投げたり、system( "pause")を使う。これにより、コンソールウィンドウがフリーズされ、出力を見ることができます。出力は「Hello!」にする必要があります。次の行で "12"が続きます。

+0

これは役に立たなかった。システム( "一時停止")は私に赤い波線を与え、getchar()と同じです。私はC++の構文が新しくなっています。私は各コマンドの使用をグーグルで試してみましたが、何を試しても、私は両方のために赤い波線を得ました。私はしかし、試したcin.get();しかし、それは何もしなかった、それでも変わった出口コード。また、問題は、プログラムを実行するのが速すぎるとは思えません。なぜなら、私はa = "hey"を削除するからです。私は他のすべての出力を得る。さらなる提案は大歓迎です! –

+0

Visual Studio 2015でコードを実行すると、コードがうまく動作するため、Eclipseでの設定に問題があります。EclipseでデフォルトのHello Worldプログラムを作成して実行します。同じエラーが発生した場合は、単なるIDEの問題です。 – Kylecrocodyle

+0

ええ、私はEclipseを放棄し、それが機能するためにVisual Studioに行きました。助けてくれてありがとう! :) –

関連する問題