Добавил:
morpex_1_
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабы мышев / laba3
.cpp#include <iostream>
#include <bitset>
#include <string>
#include <fstream>
#include <cmath>
using namespace std;
void foo2(string& str)
{
int num = 0;
ofstream fout("D:\\File2.txt", ios::app);
if (!fout.is_open()) { cout << "Error!"; exit(-1); }
for (int i = 0; i < str.size(); i++)
{
if (str[i] == '1')
num += pow(2, 7 - i);
}
fout << (char)num;
fout.close();
}
void foo(string& str)
{
int size = str.size();
if (size % 8 != 0)
{
int dif = size % 8;
for (int i = 0; i < 8 - dif; i++)
str += '0';
}
string buf = "\0";
for (int i = 0; i < str.size(); i++)
{
buf.push_back(str[i]);
if ((i+1) % 8 == 0) {
foo2(buf);
buf = "\0";
}
}
}
int main()
{
ifstream fin("D:\\File1.txt");
if (!fin.is_open()) { cout << "Error!"; return 0; }
char ch;
bitset<9> b1;
string str;
while (fin.get(ch))
{
b1 = ch;
bitset<9> b2;
b2 = b1 << 1;
string temp = "\0";
int count = 0;
temp = b2.to_string();
for (int i = 0; i < temp.size(); i++)
{
if (temp[i] == '1')
count++;
}
if (count % 2 == 0)
b2[0] = 0;
else
b2[0] = 1;
str += b2.to_string();
}
foo(str);
fin.close();
return 0;
}