#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&gt;&gt;”行中收到错误名称;'。我该如何解决?
答案 0 :(得分:4)
2个问题:
char
只能容纳一个字符,因此您需要使用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
在到达空格时终止,因此"Mohammad Ali"
之类的名称将被视为"Mohammad"
。对于可接受多个单词的特定目的,您应使用std::getline(cin, str)
,str
为std::string
。这将在字符串到达'\n'
时终止。
(您也可以给std::getline
第三个参数来选择自己的分隔符:std::getline(cin, str, '\t')
。这会使它在遇到'\t'
字符时终止。std::getline
具有第三个char
参数/参数默认为'\n'
。)
答案 1 :(得分:1)
字符变量只能包含一个字符。与char a='x';
一样。
如果要在C ++中使用
存储字符串const char * a = "name";
或
string a="name";