2017-02-21 4 views
-1
/* 
* hello_world.cpp 
* 
* Created on: Feb 21, 2017 
*  Author: George Lutas 
*/ 

#include <iostream> 
#include <string> 
#include <vector> 
#include <algorithm> 
#include <cmath> 

using namespace std; 

inline void keep_window_open() { char ch; cin>>ch; } 

int main()  //C++ programs start by executing the function main 
{ 
    cout << "George 17\n"; 
    string first_name = "George"; 
    int age = 17; 
    cin >> first_name >> age; 
    cout << "Hello," << first_name << "(age" << age << ")" << endl; 
} 

これは私のコードです。私はここで何が欠けているのですか?コードの目的は、「こんにちは、ジョージ(17歳)」です。だから、どうすれば "ジョージ17"の代わりにそれを読むことができますか?また、私はstd_lib_facilities.hがインストールされていないことを知っています。それが目的です。私はロードする必要のあるライブラリを持っていると確信しています(エラーが表示されないという事実によって)。C++コードcout印刷ではなく、文字列で使用されるのを待っています。

+0

'' '' cin''''は '' '' cout''''には付けられません。基本的には "George 17"をターミナルに書き出し、その後キーボード入力をブロックします。 – mascoj

+0

@mascoj拡張するには少なくとも、<< std :: flush >>を使用して強制的に端末に出力します。 –

+0

@πάνταῥεῖ - いいえ、 'std :: flush'は必要ありません。 'std :: cin'と' std :: cout'は結ばれているので、 'std :: cin'でストリーム抽出を呼び出すと' std :: cout'がフラッシュされます。 –

答えて

3

のは、あなたのmain機能を分析してみましょう:

cout<<"George 17\n"; 

この行は"George 17"を印刷し、新しい行に切り替わります。

string first_name="George"; 
int age=17; 

これは"George"17に初期化整数変数ageに初期化変数first_name文字列を定義します。

cin>>first_name>>age; 

これは、(この順番で)タイプstringintの入力を読み取り、first_nameageにそれを保存します。それはあなたの入力を促さないでしょう。 (あなたはcoutを使ってそれを実装しなければならないでしょう)。入力を提供するのを待つだけです。これは、プログラムが終了したように見えるかもしれません。そうではありません。

cout<<"Hello,"<<first_name<<"(age"<<age<<")\n"; 

この行は最終的に期待される出力を出力します。

関連する問題