2 つの問題: Achar
は 1 文字しか保持できないため、 を使用する必要がありstd::string
、行末にセミコロンがありません。
// Here
cout << "Please enter your name" << endl
// Here
cout << "Please enter your city name" << endl
// And here
cout << "Your name is " << name << "and live in" << city << endl
現在のステートメントを終了しようとしていることをコンパイラーが認識するために、セミコロンが必要です。これは主にあいまいさを取り除くためのもので、次のようなことが可能になります。
x = some_routine(boost::some_very_long_function_name0<type>(some_args0),
boost::some_very_long_function_name1<type>(some_args1),
boost::some_very_long_function_name2<type>(some_args2));
// Terminates the current statement ^
このように、非常に長い行を処理する必要はありません。それはWin-Winです。
最後に 1 つ:cin >> name
はスペースに達すると終了するため、 のような名前"Mohammad Ali"
は として読み取られ"Mohammad"
ます。複数の単語が許容されるこの特定の目的では、 std::getline(cin, str)
where str
is anを使用する必要がありstd::string
ます。これにより、 に到達すると文字列が終了します'\n'
。
(std::getline
独自の区切り文字を選択するために 3 番目の引数を指定することもできます: 。これにより、文字std::getline(cin, str, '\t')
にヒットすると終了します。デフォルトでは、3 番目のパラメーター/引数があります。)'\t'
std::getline
char
'\n'