我正在学习C ++,方法是按照书中的示例进行操作,输入后再进行双重检查,我会不断收到错误消息。我无法弄清楚出了什么问题。如果重要的话,我正在使用Visual C ++ 2010。
#include <iostream>
using namespace std;
int main()
{
// Prompt the user for data
cout << "Please enter two words:" << endl;
//Read in the values
string b, c;
cin >> b >> c;
// Give feedback
cout << "I understood: "
<< b << ", and "
<< c << endl;
// NOw, lets's read a whole line of text as a single entity
cout << "Now, type in a whole line of text, "
<< "with as many blanks as you want:"
<< endl;
//getline() is a function; we'll talk more about them in Part3
string wholeLine;
getline( cin, wholeLine );
//In the cout statement below, remember that \"
// is an escape sequence!
cout << "I understood: \"" << wholeLine << "\"" << endl;
// And we're done!
return 0;
}
有四个错误。 错误代码是:
错误1 错误C2678:二进制'&gt;&gt;' :找不到哪个运算符带有'std :: istream'类型的左手操作数(或者没有可接受的转换)i:\ helloworld.cpp 11
错误2 错误C2679:二进制'&lt;&lt;' :没有找到哪个运算符采用'std :: string'类型的右手操作数(或者没有可接受的转换)i:\ helloworld.cpp 15
错误3 错误C3861:'getline':找不到标识符i:\ helloworld.cpp 25
错误4 错误C2679:二进制'&lt;&lt;' :没有找到哪个运算符采用'std :: string'类型的右手操作数(或者没有可接受的转换)i:\ helloworld.cpp 29
答案 0 :(得分:7)
#include <string>
缺少string
。
答案 1 :(得分:1)
正如韦斯利所说,确保你有图书馆。
另外,在同一程序中使用 getline()和 cin 时要非常小心。一个可以影响另一个,你可以得到意想不到的结果。为了安全起见,我发现在使用getline之后使用 cin 和 之前使用 cin.ignore()是很有用的。干杯!