CString m; cin>>m;这样的语句为什么报错?

rrorC2679:二进制“>>”:没有找到接受“ATL::CString”类型的右操作数的运算符(或没有可接受的转换)1>d:\vs2005\vc\include\is... rror C2679: 二进制“>>”: 没有找到接受“ATL::CString”类型的右操作数的运算符(或没有可接受的转换)
1> d:\vs2005\vc\include\istream(1137): 可能是“std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char *)”
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> d:\vs2005\vc\include\istream(1139): 或“std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char &)”
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> d:\vs2005\vc\include\istream(1141): 或“std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)”
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]






1> 试图匹配参数列表“(std::istream, ATL::CString)”时
1>生成日志保存在“file://e:\表类文件操作材料\文件\Debug\BuildLog.htm”
1>文件 - 1 个错误,1 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========
展开
 我来答
百度网友3f9d5e5
2014-09-11 · TA获得超过326个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:127万
展开全部
Cstring是ATL中的类,cin是STL里面的类对象,>>操作符的右操作数必须在STL的代码中进行定义或者自定义,显然STL里面不会有ATL中的类,所以你必须重载>>操作符对CString进行支持,或者采用中间变量转换,例如string s; cin>>s;CString m;m.Format("%s",s.c_str());
更多追问追答
追问
还是报错怎么办
error C2664: “void ATL::CStringT::Format(const wchar_t *,...)”: 不能将参数 1 从“const char [3]”转换为“const wchar_t *

与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
追答
我去!"const wchar_t" 你还使用unicode字符集,那你就用对应的wcin、wstring啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式