gpt4 book ai didi

c++ - 错误:不匹配 std::operator<<>(*&std::cout),((const char*) 中的 operator<<

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:33 25 4
gpt4 key购买 nike

error: no match for operator<< in std::operator<<
<std::char_traits<char> >(*&std::cout),((const char*)


#include <iostream>
using namespace std;

int ContarDig (int num){
int contar=1;
while (num>9){
num=num/10;
contar=contar+1;
}
return contar;
}
void arreglo(int a[], int t){
for(int i=(ContarDig(t)-1); i>=0; i--){
a[i]=t%10;
t=t/10;
cout <<"valor posicion[" << i << "]= "<<a[i]<<endl;
}
}
void invertir(int A[],int x){
int l=(ContarDig(x)/2);
int i=0;
int f=ContarDig(x);
for(l;l>=0;l--){
int b=A[i];
A[i]=A[f];
A[f]=b;
i++;
f--;
}
for (i;i<=ContarDig(x);i++){
cout <<"valor posicion[" << i << "]= "<<A[i]<<endl;
}
}
int main(int argc, char *argv[]) {
int x;
cout<<"Digite un numero para invertir"<<endl;
cin>>x;
int A[ContarDig(x)];
arreglo (A,x);
cout<<"========================================================================"<<endl;
cout<< "El arreglo invertido es:" << invertir(A,x) << endl;
return 0;
}

所以,我想知道如何解决我的问题,它的目标是拥有一个数组并将其反转。

#include <iostream>
using namespace std;

int ContarDig (int num){
int contar=1;
while (num>9){
num=num/10;
contar=contar+1;
}
return contar;
}
void arreglo(int a[], int t){
for(int i=(ContarDig(t)-1); i>=0; i--){
a[i]=t%10;
t=t/10;
cout <<"valor posicion[" << i << "]= "<<a[i]<<endl;
}
}
void invertir(int A[],int x){
int l=(ContarDig(x)/2);
int i=0;
int f=ContarDig(x)-1;
for(l;l>=0;l--){
int b=A[i];
A[i]=A[f];
A[f]=b;
if (ContarDig(x)==2)
break;
i++;
f--;
}
}
int main(int argc, char *argv[]) {
int x;
cout<<"Digite un numero para invertir"<<endl;
cin>>x;
int A[ContarDig(x)];
arreglo (A,x);
cout<<"========================================================================"<<endl;
cout<< "El arreglo invertido es:" <<endl;
invertir(A,x);
for (int i=(ContarDig(x)-1);i>=0;i--){
cout <<"valor posicion[" << i << "]= "<<A[i]<<endl;
}
return 0;
}

这是我程序的新版本,现在可以完美运行了。

最佳答案

与标题相关的错误源于这一行:

cout<< "El arreglo invertido es:" << invertir(A,x) << endl;

函数invertir ()返回 void , 并且无法打印。对于编译器,这就像写 std:: cout <<; , 这是无效的。将函数的返回类型更改为适当的类型,或者干脆不要尝试打印它。调用函数并允许它正常打印(因为函数中调用了 std:: cout:: operator << ())。

您应该尝试解释您收到的这些错误。尽管您因此类简单错误而得到的错误跨越了页面(我得到了 194 行错误),但只需更改一行代码即可解决所有问题。不要被吓倒,检查给定的行号,并查看该代码是否存在简单错误。

我的错误看起来像这样,还有一大堆。

test92.cpp: In function ‘int main(int, char**)’:
test92.cpp:41:39: error: no match for ‘operator<<’
(operand types are ‘std::basic_ostream<char>’ and ‘void’)

这就是您所需要的。

关于c++ - 错误:不匹配 std::operator<<<std::char_traits<char>>(*&std::cout),((const char*) 中的 operator<<,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23177726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com