-2
我需要cin.fail帮助,当它以空格开头时。C++ - Cin.fail开始时的空间
这就是我的意思。
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
char b[80];
int e,d,v,m=0;
for(int i=0;i<80;i++)
{
b[i]=0;
}
cout << "Insert number in binary:" << endl;
cin >> b;
v=0;
for(int i=0;i<80;i++)
{
if(b[i]=='1' || b[i]=='0' || b[i]=='\n')
{
v++;
}
else if(b[i]!=0 || b[i]!='\0' || b[i]==' ')
{
cout << "Error" << endl;
return 0;
}
}
e=v-1;
d=0;
m=0;
for(int i=0;i<v;i++)
{
m=(b[i]-48)*(pow(2,e));
d=d+m;
e=e-1;
}
cout << "His number in decimal: "<< d << endl;
return 0;
}
当有像1010这样的东西它确定,它会给我号码。 如果它包含其他数字-2,3等。它会失败,其确定 但是,当它得到像_101010一样的东西。程序仍然会继续,它会给我号码,但我需要它失败。所以我需要像..当b包含1 0或\ n,程序将继续,否则它将失败。但是,当我把\ n像
if(b[i]=='1' || b[i]=='0' || b[i]=='\n')
- 它不工作。我的意思是,PROGRAMM在任何情况下,失败......
对不起,问这个“愚蠢”的问题,但我这样做是为了小时,仍然没有弄明白..谢谢你们。
你的问题不清楚。你甚至没有在你发布的代码中的任何地方使用'cin',我们也不知道'b','i'和'v'是什么,或者它们与你所要求的有什么关系。 – interjay
我了解你。我的意思是。我有关于cin小数的二进制数。就像010101和Cout一样,我将它转换成十进制数。例如,当你放入cin 1100时,cout将与12一起出现。当你放入cin 123时,cout将会失败并显示一些错误消息“Nespravny vstup”,因为2和3不是二进制数字。我需要程序失败,如果有人会在输入cin的开始处放置空间..就像.. _0101 ..在这种情况下,我需要程序失败。 –
请发布[最小,完整和可验证示例](http ://stackoverflow.com/help/mcve)。 –