我有以下代码
int main()
{
cout << "Please enter your name..." << endl;
cin >> name;
cout << "Data type = " << typeid(name).name() << endl;
cin.get();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
根据我读过的关于typeid运算符的各种教科书和文档,我应该阅读
"Data type = string"
Run Code Online (Sandbox Code Playgroud)
作为输出.相反,我得到以下内容
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >
Run Code Online (Sandbox Code Playgroud)
有谁知道我哪里出错了?FWIW,我正在使用Visual Studio 2010 Professional.
GMa*_*ckG 14
没有错误.
那些教科书首先应该告诉你结果name()是实现定义的,很可能是"".其次,那种类型是 std::string.该std::string类型是只是一个typedef的std::basic_string使用char和朋友.
| 归档时间: |
|
| 查看次数: |
701 次 |
| 最近记录: |