0
#include <iostream>

using namespace std;

int main(){
    char name;
    char city;

    cout << "Please enter your name" << endl
    cin >> name;
    cout << "Please enter your city name" << endl
    cin >> city;

    cout << "Your name is  " << name << "and live in" << city << endl

    return 0;
}

我看不出我是否遗漏了什么,但在“cin >> name;”行中出现错误。我该如何解决?

4

2 回答 2

4

2 个问题: Achar只能包含一个字符,因此您需要使用 an 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 ^

这样,我们就不必处​​理非常非常长的线路。这是一个双赢。


最后一件事:cin >> name当它到达一个空格时终止,所以一个名字 like"Mohammad Ali"会被读作"Mohammad". 对于这个可以接受多个单词的特殊目的,您应该使用std::getline(cin, str)where stris an std::string。这将在字符串到达​​ a 时终止该字符串'\n'

(您还可以提供std::getline第三个参数来选择您自己的分隔符:std::getline(cin, str, '\t')。这使它在遇到'\t'字符时终止。默认情况下std::getline具有第三个char参数/参数'\n'。)

于 2013-05-25T12:18:27.547 回答
1

一个字符变量只能包含一个字符。喜欢char a='x';

如果你想在 C++ 中存储一个字符串,

const char * a = "name";

或者

string a="name";
于 2013-05-25T12:17:40.460 回答