2016-04-21 3 views
0

У меня проблема в предложении if. Я предполагаю, что код верен, но я не знаю, почему возникает проблема.Ошибка: ожидаемое первичное выражение перед char

#include <iostream> 

using namespace std; 

int main() 
{ 
    int a; 
    cout<<"Enter a Number and we will tell you the loop"<<endl; 
    cin>>a; 
    { 
     if(a=char) 
     { 
     cout<<"Enter only Numbers"<<endl; 
     } 
     else 
     { 
     cout<<"The value is: ";<<a<<endl; 
     } 

    } 
    do 
    { 
     cout<<a<<endl; 
     a++; 
    } while(a<=10); 
    cout << "Hello world!" << endl; 
    return 0; 
} 

Было бы great..Thanks

+4

Нет код не является правильным. Вот почему проблема if() является проблемой. "if (a = char)" недействителен C или C++. –

+1

Я очень рекомендую исследовать и узнавать о том, как писать простую программу на C++, печатать переменные и разницу между назначением и равенством. – fetherolfjd

+0

так как я могу его исправить. Я хочу, чтобы, если ** ** **, то код должен дать ошибку. –

ответ

1

Вы не можете проверить тип переменной, пытаясь сравнить a и char.

a был объявлен int и всегда будет int.
Вам не нужно его проверять, знаю какой тип.

Если вы действительно хотите, чтобы принимать какие-либо данные, а затем проверьте, чтобы увидеть, если он может быть преобразован в int, то вам необходимо принять string и попытаться разобрать эту строку:

int main() 
{ 
    string a; 

    cout << "Enter a Number and we will tell you the loop" << endl; 
    cin >> a; // Get a string from input 

    int number; 
    try 
    { 
     number = strtoi(a, 0, 10); // Try to convert the string to an int 
            // Throws an exception if it cannot be converted. 
    } 
    catch(const invalid_argument&) 
    { 
     // If the number could not be converted, catch the exception, and show an error message. 
     cout << "Enter only Numbers" << endl; 
     throw; 
    } 

    cout << "The value is: " << number << endl; 

    return 0; 
} 
+0

no, но я знаю, что 'a' объявлен как 'int', но затем im просто использует попытку программы сказать, что **, если ** 'a' равно символу, тогда код должен дать ошибку. –

+0

, пожалуйста, см. Весь код. У меня есть цикл while while !!! @abelenky –

+0

Закончите свой собственный проклятый код. Я написал важные части. – abelenky

0

Ваш переменная всегда целое число. Даже если вы введете символ, ему будет присвоено значение ASCII символа.

+0

@ downvoter: комментарии? – ayushgp

1

Как и другие, «a» всегда будет int. cin.fail() в приведенном ниже коде может помочь вам проверить вход, который не является числом, и отметить его. Надеюсь, это поможет.

int a; 
    cout << " Enter a number" <<endl; 
    cin >> a; 

     while (cin.fail()) 
     { 
      cout <<"Error. enter a number " << endl; 
      cin.clear(); 
      cin.ignore(); 
      cin >> a; 
     } 
0

Это решение проблемы.

#include

using namespace std; 

int main() 
{ 
int a; 

cout<<"Enter a Number and we will tell you the loop"<<endl; 
cin >> a; 

if(a) { 
    cout<<"The value is: "<<a<<endl; 
} 
else{ 
    cout<<"Enter only Numbers"<<endl; 
} 

do{ 
    cout<<a<<endl; 
    a++; 
}while(a>=100); 

cout << "Hello world!" << endl; 
return 0; 

}

Смежные вопросы