64,637
社区成员
发帖
与我相关
我的任务
分享
sp <<tmp <<tmp <<out;
你要连续使用,必须返回引用;
put& operator <<(const char *pt)
{
if(pt == NULL) return *this;
strcat(buffer,pt);
return *this;
}
put& operator <<(const int num)
{
if(num == 0)
{
printf("%s\n",buffer);
buffer[0]=0;
}
return *this;
}
#include <windows.h> //没用到,你包含它干什么
#include <stdio.h>
class put
{
char buffer[128];
public:
put()
{
buffer[0]=0; //干脆点,memset(buffer, '\0', sizeof(buffer));
}
put operator < <(const char *pt) //按照你的想法,貌似应该返回引用put&,
{
if(pt == NULL) return *this; //pt是不是NULL,你都返回*this,你这还写什么
strcat(buffer,pt); //buffer一共才128字节,你保证把pt考过去,buffer能够容纳?就溢出了
return *this;
}
put operator < <(const int num) //也应该是引用,不知道这是干什么的
{
if(num == 0)
{
printf("%s\n",buffer);
buffer[0]=0;
}
return *this;
}
};
put sp;
void main()
{
char tmp[64] = "abcde";
int out = 0;
for(int i=0; i <100000; i++)
{
sp < <tmp < <tmp < <out;
}
}
//不及格,鉴定完毕!