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 stris anを使用する必要がありstd::stringます。これにより、 に到達すると文字列が終了します'\n'。
(std::getline独自の区切り文字を選択するために 3 番目の引数を指定することもできます: 。これにより、文字std::getline(cin, str, '\t')にヒットすると終了します。デフォルトでは、3 番目のパラメーター/引数があります。)'\t'std::getlinechar'\n'