为什么cout不能输出?

#definemymax(a,b)(a)>(b)?(a):(b)为什么cout<<mymax(a,b);不能输出而printf("%d",mymax(a,b));可以?... #define mymax(a,b) (a)>(b)?(a):(b)
为什么cout<<mymax(a,b);不能输出
而printf("%d",mymax(a,b));可以?
展开
 我来答
智_囊_小_太
2015-06-28 · TA获得超过1634个赞
知道小有建树答主
回答量:651
采纳率:75%
帮助的人:172万
展开全部

首先你是用的是C++,嘛这一点不应该出错

cout是C++中的流输入输出中的流输出,隶属于命名空间std,看下你是否没有using std::cout,不声明这个命名空间的话,cout是不能直接使用的。

而printf当然可以啦,因为printf不需要这个命名空间即可使用。C++又兼容C

也就是说你需要:

//提前声明
using std::cout
cout << mymax(a,b);
追问
有的,应该不是这个问题
main.cpp|16|error: no match for 'operator>' in 'std::cout.std::basic_ostream::operator >(a) > b'|
这是错误提示
追答
这样,:和?的优先级低于<<
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式