Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
07.04.2023
Размер:
1.25 Кб
Скачать
#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;
}
Соседние файлы в папке лабы мышев