C++的一个常见错误

来源:百度知道 编辑:UC知道 时间:2024/06/09 02:39:26
error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'void' (or there is no acceptable conversion)这个错误是什么情况下会出现?一般怎么样改正?
源代码如下:是将ABCDE换成EDCBA。 运行后是空白,应该怎么改?
#include<iostream>
#include<string>
using namespace std;
void reverse(char *s)
{
char *p,*q,temp;
p=s;
q=s+strlen(s)-1;
while(q>p)
{
temp=*p;
*p=*q;
*q=temp;
p++;
q++;
}
}
void main()
{
char s[]="ABCDE";
reverse(s);
cout<<s<<endl;
}

ls的,别什么都杀毒。
把源码放出来看看。
-----------------------
char s[] = "ABCDEF";
reverse(s);
cout<<s<<endl;

杀毒

源代码贴出来看一下, 我猜可能是你的类重载操作符 '<<' 的不对, << 属于二元操作符, 必须有参数, 你是不是没有定义参数?

reverse是个void型函数,无返回值,你怎么能用cout来输出呢.

要么把字符串s改成全局变量,在main里面cout<<s;
要么就在reverse的结尾加上cout<<s;

reverse 返回VOID,无法输出其值。
//这里改下
char* reverse(char *s)
{
char *p,*q,temp;
p=s;
q=s+strlen(s)-1;
while(q>p)
{
temp=*p;
*p=*q;
*q=temp;
p++;
q++;
}
return s; // 加一行
}