繁体   English   中英

“错误:二进制'operator <<'|的类型为'int'和'const char [2]'的无效操作数”

[英]“error: invalid operands of types 'int' and 'const char [2]' to binary 'operator<<'|”

首先,我是一个初学者。 我曾在网上看到过类似的问题,但与我有同样的错误,但是没有一个像我的一样,因此我无法理解自己在做什么。

我应该使斐波那契序列显示出我选择的数字(作为葡萄牙语,我必须解释,“ primeiro”首先是指,“ segundo”是第二,而“ terceiro”是第三。)代码是这样的

#include <iostream>
using namespace std;
int main(){
int n;
int primeiro, segundo, terceiro;

primeiro = 1;
segundo = 1;
cout << "Insira o Valor Limite: ";
cin >> n;
cout << " " << endl;

while(terceiro < n){

    cout << primeiro << " " ;
    cout << segundo << " " ;
    terceiro = primeiro + segundo;
    cout << terceiro << " " ;

    primeiro = segundo << " ";
    segundo = terceiro << " " ;
    cout << " " << endl;

}

return 0;
}

错误出现在以下两行中

primeiro = segundo << " ";
segundo = terceiro << " ";

就像这样

"error: invalid operands of types 'int' and 'const char [2]' to binary 'operator<<'|"

请帮忙

那么,您想在这两行中实际做什么? 在我看来,您可能需要将'primeiro'和'segundo'变量设置为新值并继续循环。 因此,不需要“ <<”运算符。 将这两行更改为

primeiro = segundo;
segundo = terceiro;

另外,您还需要将terceiro初始化为一些值...

为了使它起作用,指示的两行应为

primeiro = segundo;
segundo = terceiro;

这里的问题是<<操作符已重载。 除了是获取并返回流的运算符之外,它还是位移位运算符。 例如1 << 2; 将采用二进制表示形式1( 00000001 )并将其向左移动两位( 00000100 ),使其变为4。您正在做的是,您正在尝试将整数primeiro和sedgundo左移一个字符串。导致类型错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM