关于C++的COUT调用函数问题(本人初学C++)
#include<iostream>usingnamespacestd;voidoutput_1(){cout<<"Threebilndmice"<<endl<<"Thr...
#include<iostream>
using namespace std;
void output_1()
{
cout << "Three bilnd mice"<< endl <<"Three bilnd mice";
}
void output_2()
{
cout << "See how they run" << endl << "See how they run";
}
void main()
{
cout << output_1() << endl;
cout << output_2() << endl;
system("pause");
}
问题1)为什么提示 main()里的" <<"没有与这些操作匹配“<<”的运算符,操作数类型为std::ostream <<void
然后调试失败
问题2)把 这三个函数 修改为int 型后,为什么输出结果是
Three bilnd mice
Three bilnd mice0
See how they run
See how they run0
会多个0出来? 展开
using namespace std;
void output_1()
{
cout << "Three bilnd mice"<< endl <<"Three bilnd mice";
}
void output_2()
{
cout << "See how they run" << endl << "See how they run";
}
void main()
{
cout << output_1() << endl;
cout << output_2() << endl;
system("pause");
}
问题1)为什么提示 main()里的" <<"没有与这些操作匹配“<<”的运算符,操作数类型为std::ostream <<void
然后调试失败
问题2)把 这三个函数 修改为int 型后,为什么输出结果是
Three bilnd mice
Three bilnd mice0
See how they run
See how they run0
会多个0出来? 展开
3个回答
展开全部
其实这两个是一个问题
cout<<xxx的意义是,将xxx送入标准输出流中
你的例子里,cout<<output_1();的意义就是“将output_1()运行的结果送入标准输出流”
可是开始你将output_1()声明成了void,就是说这个函数运行完成以后没有返回值,或者说这个函数只进行操作,不产生结果,这样放在cout<<output_1()中就会产生错误,因为<<运算符没有针对void类型的运算规则,也就是你的问题1
当你将output_1()声明ch成int以后,也就是说output_1()运行完成以后会产生一个int类型的结果,也就是返回值,这个返回值会被<<送进标准输出流,所以output_1()自己的输出完成了以后,main又输出了output_1()的返回值,当然你在一个声明有返回值的函数定义里面没有写return语句,某些编译器可能直接会给你报错,有的会让你过,你的问题2中多的0就是这么来的,但是这个0没有意义,在不同的硬件环境,不同的编译环境里,这个值都有可能不同
还有问题请追问
cout<<xxx的意义是,将xxx送入标准输出流中
你的例子里,cout<<output_1();的意义就是“将output_1()运行的结果送入标准输出流”
可是开始你将output_1()声明成了void,就是说这个函数运行完成以后没有返回值,或者说这个函数只进行操作,不产生结果,这样放在cout<<output_1()中就会产生错误,因为<<运算符没有针对void类型的运算规则,也就是你的问题1
当你将output_1()声明ch成int以后,也就是说output_1()运行完成以后会产生一个int类型的结果,也就是返回值,这个返回值会被<<送进标准输出流,所以output_1()自己的输出完成了以后,main又输出了output_1()的返回值,当然你在一个声明有返回值的函数定义里面没有写return语句,某些编译器可能直接会给你报错,有的会让你过,你的问题2中多的0就是这么来的,但是这个0没有意义,在不同的硬件环境,不同的编译环境里,这个值都有可能不同
还有问题请追问
展开全部
把主函数中的cout去掉,只留下output函数名,就可以输出了.因为你的output函数里已经有cout,所以就相当于cout<<cout << "Three bilnd mice"<< endl <<"Three bilnd mice";这是不对的.
问题2:改成int之后应该也是输出不了的,因为没有返回值.int,double等类型的函数都需要一个返回值return X;
问题2:改成int之后应该也是输出不了的,因为没有返回值.int,double等类型的函数都需要一个返回值return X;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-12
展开全部
123456789
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |