我在if
条款中遇到问题我想代码是正确的,但我不知道为什么会出现问题。
#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;
}
太棒了。谢谢
答案 0 :(得分:1)
您无法通过尝试比较a
和char
来检查变量的类型。
a
被宣布为int
,并且始终为int
您无需检查其类型, 知道 它的类型。
如果您真的想接受任何数据,然后检查它是否可以转换为int
,那么您需要接受string
,并尝试解析该字符串:< / p>
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;
}
答案 1 :(得分:1)
像其他人所说,&#34; a&#34;将永远是一个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;
}
答案 2 :(得分:0)
您的变量始终整数。即使输入一个字符,也会给出该字符的ASCII值。
答案 3 :(得分: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;
}