I have been making simple programs to solidify my basic knowledge of C++. But while making this Binary converter I came across a problem.
I cant seem to figure out how to ignore input after 8 characters. I want to read in the first 8 characters the user inputs and discard the rest.
If cin.ignore is an option I cant figure out how to do it.
:confused:Code:#include <iostream>
int BinToDec ( char *bits )
{
int result = 0;
int mask = 1;
for ( int loop = 7; loop >= 0; loop -- ) {
if ( bits [loop] != '0' && bits [loop] != '1' ) {
std::cout << "Error: Invalid Input\n";
return -1;
}
else if ( bits [loop] == '1' ) result += mask;
mask *= 2;
}
std::cout << "\nResults:\n";
std::cout << "Bin: " << bits << '\n';
std::cout << "Dec: " << result << '\n';
std::cout << "Ascii: " << static_cast <char> ( result ) << '\n';
return 0;
}
int main ()
{
char bit_array [8];
memset ( bit_array, 0, 8);
std::cout << "You must enter 8 bits. Q to exit\n\n";
while ( 1 ) {
std::cout << "\nEnter a binary value: ";
std::cin >> bit_array;
if ( bit_array[0] == 'q' ) break;
BinToDec ( bit_array );
}
std::cout << "\nGoodbye.\n";
return 0;
}