error C2678: 二进制“>>”: 没有找到接受“std::istream”类型的左操作数的运算符(或没有可接受的转换)
voidsearch(void){intname[18]={0};char*pcard=NULL;cout<<"请输入所要查询的卡号:";cin>>name;pcard=...
void search(void)
{
int name[18]={0};
char* pcard= NULL;
cout<<"请输入所要查询的卡号:";
cin>>name;
pcard=searchcard(name);
cout<<"查询到的卡信息如下"<<endl;
cout<<"卡号"<<setw(8)<<"余额"<<setw(8)<<"状态"<<setw(8)<<"累计使用"<<setw(12)<<"使用次数"<<setw(12)<<"上次使用时间"<<endl; 展开
{
int name[18]={0};
char* pcard= NULL;
cout<<"请输入所要查询的卡号:";
cin>>name;
pcard=searchcard(name);
cout<<"查询到的卡信息如下"<<endl;
cout<<"卡号"<<setw(8)<<"余额"<<setw(8)<<"状态"<<setw(8)<<"累计使用"<<setw(12)<<"使用次数"<<setw(12)<<"上次使用时间"<<endl; 展开
3个回答
展开全部
机器抽象被破坏:建议直接 terminate
代码 bug:建议使用 Contracts(默认 terminate)
OOM:建议用 new(nothrow) 和 try_ 系列函数
可恢复的错误:建议抛异常或者返回错误码
部分成功:建议当作成功
C/C++ 语言都是基于一台抽象机器定义的,如果这样的抽象被破坏根本没得玩,只能退出。例子是「栈」耗尽:你不可能避免、也不可能解决。
代码 bug 就是类似「前置条件不满足」的情况,C/C++ 传统上的处理办法是「需要满足某某条件,如果不满足是未定义行为」(C++ 一度误入 OO 歧途跟风搞出 std::invalid_argument 这种就让它随风而去吧),用户代码一般推荐 assert。提案中建议统一交给 Contracts 处理我觉得非常好,因为这样的函数不会涉及未定义行为,同时违反时会有明确的报错信息,对懒人友好。
「部分成功」即类似「传给 snprintf 的缓冲长度不够用」这种,只要有良好的文档定义此时的行为,这种情况完全可以当作成功,而不是错误。
剩下的两个就是大头:「异常 / 错误码」和「OOM」。
代码 bug:建议使用 Contracts(默认 terminate)
OOM:建议用 new(nothrow) 和 try_ 系列函数
可恢复的错误:建议抛异常或者返回错误码
部分成功:建议当作成功
C/C++ 语言都是基于一台抽象机器定义的,如果这样的抽象被破坏根本没得玩,只能退出。例子是「栈」耗尽:你不可能避免、也不可能解决。
代码 bug 就是类似「前置条件不满足」的情况,C/C++ 传统上的处理办法是「需要满足某某条件,如果不满足是未定义行为」(C++ 一度误入 OO 歧途跟风搞出 std::invalid_argument 这种就让它随风而去吧),用户代码一般推荐 assert。提案中建议统一交给 Contracts 处理我觉得非常好,因为这样的函数不会涉及未定义行为,同时违反时会有明确的报错信息,对懒人友好。
「部分成功」即类似「传给 snprintf 的缓冲长度不够用」这种,只要有良好的文档定义此时的行为,这种情况完全可以当作成功,而不是错误。
剩下的两个就是大头:「异常 / 错误码」和「OOM」。
展开全部
如果出现了“没有找到接受“std::istream”类型的左操作数的运算符(或没有可接受的转换)”这样的出错提示,请检查程序形状包含的头文件的文件名有没有打错:应该是iostream,而不是istream。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cin>>name是不行的
得cin>>name[xxx]
得cin>>name[xxx]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询