簡體   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