我在這個程序上工作了一段時間,我找不到一個方法來使cin.fail()輸出「錯誤的輸入」。在第二個二進制數的第二,第三,第四,......位。例如,「11111 a11」被檢測爲輸入失敗,但未檢測到「11111 1a1」或「11111 1abfcds」。它似乎只檢查第一位數字。這是該計劃。如何檢查多個輸入中的非整數輸入
#include <iostream>
#include <cmath>
using namespace std;
int binary_decimal_1(int n);
int binary_decimal_2(int m);
int decimal_binary(int s);
int main()
{
int n, m, s;
cout << "Input 2 binary numbers" << endl;
cin >> n;
if (cin.fail())
{
cout << "Incorrect input." << endl;
return 0;
}
cin >> m;
if (cin.fail())
{
cout << "Incorrect input." << endl;
return 0;
}
s= binary_decimal_1(n) + binary_decimal_2(m);
cout << "Sum: " << decimal_binary(s) << endl;
return 0;
}
int decimal_binary(int s) /* Function to convert decimal sum to binary result.*/
{
int rem, i=1, binary=0;
while (s!=0)
{
rem=s%2;
s/=2;
binary+=rem*i;
i*=10;
}
return binary;
}
int binary_decimal_1(int n) /* Function to convert binary number 1 to decimal.*/
{
int decimal_1=0, i=0, rem;
while (n!=0)
{
rem = n%10;
n/=10;
decimal_1 += rem*pow(2,i);
++i;
}
return decimal_1;
}
int binary_decimal_2(int m) /* Function to convert binary number 2 to decimal.*/
{
int decimal_2=0, i=0, rem;
while (m!=0)
{
rem = m%10;
m/=10;
decimal_2 += rem*pow(2,i);
++i;
}
return decimal_2;
}
您可以指定將新功能添加到編程功能的位置,並且我只是根據需要編輯此代碼。 – Fallenone
所有功能都是獨立的東西。如果你不確定如何放置一個函數,你可能需要閱讀一些基本的C++。然後,在'main()'中,你需要做的就是使用你喜歡的任何方法獲得一個字符串,然後轉換:'if(!convert_to(s,my_int))抱怨...' –