一个学习过程中的问题

星之瀚海 2003-06-03 06:03:11
#include <iostream.h>
struct aStruct
{
int count;
double value;
} num[10];
void main(void){
num[0].count=10;
num[0].value=11.09;
cout << num[0];//此句为什么编译出错?
}
我是比照21天学VC++中写的
...全文
39 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
joachern 2003-06-04
  • 打赏
  • 举报
回复
up
SuperFC 2003-06-03
  • 打赏
  • 举报
回复
对,num变量数组的类型是你自己定义的,不是内部数据类型,而cout在未重载的情况下只能对内部数据类型进行输出,因为你没有重载aStruct的输出符,故程序错误
tqtang 2003-06-03
  • 打赏
  • 举报
回复
你可以这样作:
cout << num[0].count<<num[0].value;
还可以这样作:
ostream &operator <<(.......);
对它进行重载。


rainbow1332 2003-06-03
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
struct aStruct
{
int count;
double value;
} num[10];
void main(void){
num[0].count=10;
num[0].value=11.09;
cout << num[0].count<< " "<<num[0].value;//错在此处,结构体输出!!!!!!!!
}
hpho 2003-06-03
  • 打赏
  • 举报
回复
应为num是结构体.operator<<不认识它,

ostream operator <<(ostream os, aStruct& s){
return os << s.count << s.value;
}
hahahawk 2003-06-03
  • 打赏
  • 举报
回复
Meyer说的不错。cout虽然使用很灵活,但并不是能输出所有类型。
d.cpp: In function `int main()':
d.cpp:16: no match for `std::ostream& << aStruct&' operator
/usr/local/include/c++/3.2.2/bits/ostream.tcc:55: candidates are:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(std::basic_ostream<_CharT,
_Traits>&(*)(std::basic_ostream<_CharT, _Traits>&)) [with _CharT = char,
_Traits = std::char_traits<char>]
Meyer 2003-06-03
  • 打赏
  • 举报
回复
cout << num[0];//此句为什么编译出错?

这句不出错,才怪呢

cout 怎么知道你定义的 结构该怎么输出
星之瀚海 2003-06-03
  • 打赏
  • 举报
回复
老兄,还是不行,又多一错误,没有std这个namespace
BlackSmith888 2003-06-03
  • 打赏
  • 举报
回复
没有using namespace std;

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧