Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- using namespace std;
- int BinToDec(string number)
- {
- int result = 0, pow = 1;
- for ( int i = number.length() - 1; i >= 0; --i, pow <<= 1 )
- result += (number[i] - '0') * pow;
- return result;
- }
- int main()
- {
- int znak;
- FILE *plik = fopen( "bash2.txt", "r" );
- string sBits = "";
- bool prevSpace = false;
- int i = 0;
- znak = getc( plik );
- while( znak != EOF && i < 16 )
- {
- znak = getc( plik );
- if(znak != ' ')
- {
- if(prevSpace == true)
- {
- // mamy zero
- i++;
- sBits += "0";
- }
- }
- else
- {
- if(prevSpace == true)
- {
- //mamy jedynke
- i++;
- sBits += "1";
- prevSpace = false;
- continue;
- }
- }
- if(znak == ' ')
- {
- prevSpace = true;
- }
- else
- {
- prevSpace = false;
- }
- }
- int ilosc_bitow = BinToDec(sBits);
- cout << sBits << endl;
- cout << "ilosc bitow: " << ilosc_bitow << endl;
- int ilosc_znakow = ilosc_bitow / 8;
- cout << "ilosc znakow: " << ilosc_znakow << endl;
- for(int x = 0; x < ilosc_znakow; x++)
- {
- i = 0;
- sBits = "";
- prevSpace = false;
- //znak = getc( plik );
- while( znak != EOF && i < 8 )
- {
- znak = getc( plik );
- if(znak != ' ')
- {
- if(prevSpace == true)
- {
- // mamy zero
- i++;
- sBits += "0";
- }
- }
- else
- {
- if(prevSpace == true)
- {
- //mamy jedynke
- i++;
- sBits += "1";
- prevSpace = false;
- continue;
- }
- }
- if(znak == ' ')
- {
- prevSpace = true;
- }
- else
- {
- prevSpace = false;
- }
- }
- char nextChar = static_cast<char>(BinToDec(sBits));
- cout << nextChar;
- }
- fclose( plik );
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement