5

MacでC++を学び始めたばかりですが、いくつかの問題が発生しました。

ユーザーが番号を入力できるようにするコードをいくつか作成しました。Enterキーを押すと、番号がユーザーに返されます。

ただし、Xcodeには絶対にありません。コードを実行しようとするたびに、コードに問題があると表示されcin>> thisisanumber;ます。

エラーが発生し、

Invalid operands to binary expression. エラーは10行目にあります。

私は何が間違っているのですか?

#include <iostream>

using namespace std;

int main()
{
   int thisisanumber();

   cout << "Please enter a number: ";
   cin  >> thisisanumber;
   cin.ignore();
   cout << "You entered"<< thisisanumber <<"\n";
   cin.get();
}
4

5 に答える 5

10

あなたは最も厄介な解析の犠牲になりました。これはthisisanumber、関数として扱われていることを意味します。かっこを外すと大丈夫です:

int thisisanumber;

また、など、もう少し読みやすくすることも検討してthisIsANumberください。それを知る必要がある場合thisIsANumberは、キャメルケースの命名規則を使用してください。

于 2012-07-23T21:01:57.403 に答える
3

次のように、角かっこなしで変数を宣言します

int thisisanumber;

角かっこを使用すると、関数として解釈され、関数をパラメーターとして>>オペレーターに渡すことはできません。

于 2012-07-23T21:02:21.253 に答える
2

あなたの問題は、いわゆる最も厄介な解析です。基本的に、関数宣言として解析できるすべてのものは、そのように解析されます。したがって、コンパイラは、ゼロの引数を取り、。を返すint thisisanumber();関数の宣言として解釈します。この振る舞いを考慮すると、問題はある程度自明であるはずです。thisisanumberintcin>>thisisanumber;

変数宣言をに変更して、括弧を削除すると、プログラムは、型の変数であるint thisisanumber;と期待どおりに動作するはずです。thisisanumberint

ただし、命名規則を再考するかもしれませんが、thisisanumber正確に読み取ることはできません。this_is_a_number、、thisIsANumberまたはで行くことをお勧めしThisIsANumberます。

于 2012-07-23T21:03:26.113 に答える
1
int thisIsANumber;

あなたが書いたものは関数として解釈されているので、それを変数宣言にしてみてください。

于 2019-05-01T07:10:58.967 に答える
0

()afterを削除します。これはthisisanumber、()afterthisisanumberは、関数ではないのに関数であることを意味するためです。

于 2021-01-16T19:32:49.160 に答える