c++栈:未初始化的局部变量

C++ Stack: uninitialized local variables

本文关键字:局部变量 初始化 c++      更新时间:2023-10-16
#include "iostream"
using namespace std;
int main()
{
int a,d,D,c,C,b,B,r,R;
char f,y,Y,n,N;
cout << "Press D - d, for dog,C -c for cat, B - b, for bird or R - r for Reptile:";
cin >> a;
if (a == d || a == D || a == c || a == C || a == b || a == B || a == r || a == R);
        if (a == d || a == D || a == c || a == C)
                if (a == d || a == D )
                 cout << "Is it neutered(Y/N)";
        cin >> f;
        if (f == Y || f == y)
                cout << "50 Euros.";
        else if (f == n || f == N)
                cout << "80 Euros.";
        if (a == c || a == C )
                cout << "Is it neutered(Y/N)";
        cin >> f;
        if (f == Y || f == y)
                cout << "40 Euros.";
        else if (f == n || f == N)
                cout << "60 Euros.";
        if (a == r || a == R || a == B || a == b)
                cout <<"10 Euros.";
if (a != d && a != D && a != c && a != C && a != b && a != B && a != r && a != R)
                cout << "Error!";
        system("pause");

        return 0;}

Error I am getting:

...12b.cpp(21): warning C4390: ';' : empty controlled statement found; is this the intent?
...12b.cpp(20): error C4700: uninitialized local variable 'd' used
...12b.cpp(20): error C4700: uninitialized local variable 'D' used
...12b.cpp(20): error C4700: uninitialized local variable 'c' used
...12b.cpp(20): error C4700: uninitialized local variable 'C' used
...12b.cpp(20): error C4700: uninitialized local variable 'b' used
...12b.cpp(20): error C4700: uninitialized local variable 'B' used
...12b.cpp(20): error C4700: uninitialized local variable 'r' used
...12b.cpp(20): error C4700: uninitialized local variable 'R' used
...12b.cpp(25): error C4700: uninitialized local variable 'Y' used
...12b.cpp(25): error C4700: uninitialized local variable 'y' used
...12b.cpp(27): error C4700: uninitialized local variable 'n' used
...12b.cpp(27): error C4700: uninitialized local variable 'N' used

为什么我得到这个错误??我不明白??

好了,让我们简化一下代码。我认为你的意图是这样的:

char selection;
cout << (as before)
cin >> selection;
selection = tolower(selection);
switch(selection) {
case 'd':
   // stuff for dogs here
   break;
case 'c':
   // stuff for cats
   break;
// etc.
default:
   // error case
}

对吧?

我认为这很清楚,而不是

if (a == d || ...

你实际上想要

if (a == 'd' || ...

。将变量a与字符'd'进行比较。你已经犯了很多很多次同样的错误,所以把它们都修正一下,看看还剩下什么错误。

你也错误地声明a作为int时,它应该是一个charf是正确的,但a却不正确。