错误:不对应的operator<<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;
}

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

===============>>#1 票数:1 已采纳

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

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’)

这就是您所需要的。

  ask by user3553038 translate from so

未解决问题?本站智能推荐:

1回复

运算符重载<<错误

我收到编译器错误 在引用此运算符重载的主类中,但是我无法理解错误的位置。 这里有运算符重载线,我在类定义中实现了它。 顶点和优先级是整数和无符号整数。 在主类中,我试图这样做:
1回复

二进制'<<':未找到采用'std :: basic_ostream类型的左操作数的运算符 >'

有一个函数将std :: ostream&作为参数并执行一些操作: 还有另一个函数调用my_function : Visual Studio 2015编译器报告错误: std :: ostringstreamm具有继承和重载的operator<< ,在这种情况
2回复

使用std :: copy - 错误C2679:找不到正确的二进制'='运算符

我试图使用这个问题的解决方案: 如何在C ++中逐行迭代cin? 错误消息 c:\\ program files(x86)\\ microsoft visual studio 10.0 \\ vc \\ include \\ xutility(2144):error
3回复

为什么std :: endl会生成这个神秘的错误消息?

如果我尝试编译以下代码,我会得到以下编译器错误(请参阅代码。)如果删除了std::endl它将编译而不会出错。 #include <iostream> #include <sstream> #include <utility> namespace deta
1回复

使用cout输出cerr

我遇到了一段基本上如下的代码: 输出: 首先,为什么有人会'cout << cerr'它没有意义。 第二,上面的输出是什么意思? 值得一提的是,在我的机器上,上面的代码编译并执行没有错误。 但是,在运行相同版本的gcc 5.4.0的不同机器(服务器ssh
4回复

奇怪的iostream编译错误

尝试执行以下操作时出现这些错误。 我有一个FileMgr类,用于处理输入和具有两个成员函数的输出文件,以将输入的每一行复制到列表中,并从列表的每个成员写入输出。 注意:以下功能在由我的主设备直接处理时可以正常工作! 因此,不必费心试图弄清楚我正在使用复制功能,我花了很多时间弄清楚它们,现在
1回复

Orwell Dev-C ++致命错误:“ iostream:没有这样的文件或目录”

我正在尝试在Orwell Dev-C ++中编译在另一台计算机上编写的头文件。 我刚刚下载了Dev-C ++,所以对它不是很熟悉。 以下是导致问题的代码片段: 由此,我得到以下编译时错误: 但是,当我注释掉#include <iostream>行时,我得到了相同的
1回复

iostream导致与另一个库不匹配

我正在尝试读取与discord_rpc一起使用的内存值,以向现有程序中添加一种丰富的状态伪功能。 似乎每当我尝试#include <iostream>时,每当我尝试编译代码时,都会引发很多错误。 这是一些错误: 我是C ++的新手,所以我几乎不知道我在做什么错。
1回复

自定义流对象错误?

我正在尝试编写一个程序: 解析文本,删除预先指定的(标点符号)字符,并创建一个按字母顺序排序的字典,其中包含来自文本的解析词,然后将其显示在屏幕上。 来自Bjarne Stroustup的C ++编程:原理和实践 这是我写的: Chapter11Exercise7Exec
1回复

“错误:使用std :: string时不匹配'operator <<”

你可以帮我找到下面代码中的问题(代码类似于C ++流作为重载operator <<时的参数 ): 一切正常,直到我取消注释包含“世界”的行。 在这种情况下,GCC产生错误:在......中没有匹配'operator <<' 有趣的是,VS2008对此代码没