#include <windows.h>
#include <locale>
#include <string.h>
#include <iostream>
#include <fstream>
#pragma warning(disable : 4996)
using namespace std;
void filling_file();
void text_analysis();
int main()
{
setlocale(LC_ALL, "Russian");
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
filling_file();
text_analysis();
cout << endl; //
system("pause"); //
return 0;
}
void filling_file() {
const char* FName = "course_work.bin";
const int key_size = 20;
FILE* File;
char key_phrase[key_size]; // объявление ключевого словосочетания
cout << "Enter a keyword: " << endl;
cin.getline(key_phrase, key_size);
strcat(key_phrase, "*"); // добавление * в конец словосочетания
File = fopen("course_work.bin", "w+b");
fwrite(&key_phrase, sizeof(key_phrase), 1, File); // запись словосочетания в бинарный файл
const int text_size = 1000;
char text[text_size] = "Хороши русские леса! Смолою пахнет сосновый бор. Под самыми тучами шумят "
"зеленые вершины, метут синеву неба. Точно белые красавицы глядят в воду "
"кудрявые березки. На залитых солнцем полянах раскинулись дубы. Каждым "
"листочком дрожит осинка. Яркий осенний наряд у клена. Высокие стройные "
"ели вытянули острые макушки. В тенистых дубравах поселились певчие птицы."
"Тихие речушки протекают в лесной глуши...";
fwrite(&text, sizeof(text), 1, File); // запись текста в бинарный файл
fclose(File);
}
void text_analysis() {
FILE* File;
const int text_size = 1000;
const int key_size = 20;
File = fopen("course_work.bin", "r+b");
char key_phrase[key_size];
char text[text_size];
fread(&key_phrase, sizeof(key_phrase), 1, File);
fread(&text, sizeof(text), 1, File);
fclose(File);
}
I2luY2x1ZGUgPHdpbmRvd3MuaD4KI2luY2x1ZGUgPGxvY2FsZT4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxmc3RyZWFtPgojcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ5OTYpCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBmaWxsaW5nX2ZpbGUoKTsKdm9pZCB0ZXh0X2FuYWx5c2lzKCk7IAoKaW50IG1haW4oKQp7CiAgICBzZXRsb2NhbGUoTENfQUxMLCAiUnVzc2lhbiIpOwogICAgU2V0Q29uc29sZU91dHB1dENQKDEyNTEpOwogICAgU2V0Q29uc29sZUNQKDEyNTEpOyAKCiAgICBmaWxsaW5nX2ZpbGUoKTsKICAgIHRleHRfYW5hbHlzaXMoKTsKCiAgICBjb3V0IDw8IGVuZGw7ICAgIC8vCiAgICBzeXN0ZW0oInBhdXNlIik7IC8vCiAgICByZXR1cm4gMDsKfQoKCnZvaWQgZmlsbGluZ19maWxlKCkgewoKICAgIGNvbnN0IGNoYXIqIEZOYW1lID0gImNvdXJzZV93b3JrLmJpbiI7CiAgICBjb25zdCBpbnQga2V5X3NpemUgPSAyMDsKICAgIEZJTEUqIEZpbGU7CgogICAgY2hhciBrZXlfcGhyYXNlW2tleV9zaXplXTsgLy8g0L7QsdGK0Y/QstC70LXQvdC40LUg0LrQu9GO0YfQtdCy0L7Qs9C+INGB0LvQvtCy0L7RgdC+0YfQtdGC0LDQvdC40Y8KICAgIGNvdXQgPDwgIkVudGVyIGEga2V5d29yZDogIiA8PCBlbmRsOwogICAgY2luLmdldGxpbmUoa2V5X3BocmFzZSwga2V5X3NpemUpOwoKICAgIHN0cmNhdChrZXlfcGhyYXNlLCAiKiIpOyAgIC8vINC00L7QsdCw0LLQu9C10L3QuNC1ICog0LIg0LrQvtC90LXRhiDRgdC70L7QstC+0YHQvtGH0LXRgtCw0L3QuNGPIAoKICAgIEZpbGUgPSBmb3BlbigiY291cnNlX3dvcmsuYmluIiwgIncrYiIpOwogICAgZndyaXRlKCZrZXlfcGhyYXNlLCBzaXplb2Yoa2V5X3BocmFzZSksIDEsIEZpbGUpOyAvLyDQt9Cw0L/QuNGB0Ywg0YHQu9C+0LLQvtGB0L7Rh9C10YLQsNC90LjRjyDQsiDQsdC40L3QsNGA0L3Ri9C5INGE0LDQudC7CgogICAgY29uc3QgaW50IHRleHRfc2l6ZSA9IDEwMDA7CgogICAgY2hhciB0ZXh0W3RleHRfc2l6ZV0gPSAi0KXQvtGA0L7RiNC4INGA0YPRgdGB0LrQuNC1INC70LXRgdCwISDQodC80L7Qu9C+0Y4g0L/QsNGF0L3QtdGCINGB0L7RgdC90L7QstGL0Lkg0LHQvtGALiDQn9C+0LQg0YHQsNC80YvQvNC4INGC0YPRh9Cw0LzQuCDRiNGD0LzRj9GCICIKICAgICAgICAi0LfQtdC70LXQvdGL0LUg0LLQtdGA0YjQuNC90YssINC80LXRgtGD0YIg0YHQuNC90LXQstGDINC90LXQsdCwLiDQotC+0YfQvdC+INCx0LXQu9GL0LUg0LrRgNCw0YHQsNCy0LjRhtGLINCz0LvRj9C00Y/RgiDQsiDQstC+0LTRgyAiCiAgICAgICAgItC60YPQtNGA0Y/QstGL0LUg0LHQtdGA0LXQt9C60LguINCd0LAg0LfQsNC70LjRgtGL0YUg0YHQvtC70L3RhtC10Lwg0L/QvtC70Y/QvdCw0YUg0YDQsNGB0LrQuNC90YPQu9C40YHRjCDQtNGD0LHRiy4g0JrQsNC20LTRi9C8ICIKICAgICAgICAi0LvQuNGB0YLQvtGH0LrQvtC8INC00YDQvtC20LjRgiDQvtGB0LjQvdC60LAuINCv0YDQutC40Lkg0L7RgdC10L3QvdC40Lkg0L3QsNGA0Y/QtCDRgyDQutC70LXQvdCwLiDQktGL0YHQvtC60LjQtSDRgdGC0YDQvtC50L3Ri9C1ICIKICAgICAgICAi0LXQu9C4INCy0YvRgtGP0L3Rg9C70Lgg0L7RgdGC0YDRi9C1INC80LDQutGD0YjQutC4LiDQkiDRgtC10L3QuNGB0YLRi9GFINC00YPQsdGA0LDQstCw0YUg0L/QvtGB0LXQu9C40LvQuNGB0Ywg0L/QtdCy0YfQuNC1INC/0YLQuNGG0YsuIgogICAgICAgICLQotC40YXQuNC1INGA0LXRh9GD0YjQutC4INC/0YDQvtGC0LXQutCw0Y7RgiDQsiDQu9C10YHQvdC+0Lkg0LPQu9GD0YjQuC4uLiI7CgogICAgZndyaXRlKCZ0ZXh0LCBzaXplb2YodGV4dCksIDEsIEZpbGUpOyAvLyDQt9Cw0L/QuNGB0Ywg0YLQtdC60YHRgtCwINCyINCx0LjQvdCw0YDQvdGL0Lkg0YTQsNC50LsKCiAgICBmY2xvc2UoRmlsZSk7Cgp9Cgp2b2lkIHRleHRfYW5hbHlzaXMoKSB7CgogICAgRklMRSogRmlsZTsKCiAgICBjb25zdCBpbnQgdGV4dF9zaXplID0gMTAwMDsKICAgIGNvbnN0IGludCBrZXlfc2l6ZSA9IDIwOwogICAgRmlsZSA9IGZvcGVuKCJjb3Vyc2Vfd29yay5iaW4iLCAicitiIik7CgogICAgY2hhciBrZXlfcGhyYXNlW2tleV9zaXplXTsKICAgIGNoYXIgdGV4dFt0ZXh0X3NpemVdOwoKICAgIGZyZWFkKCZrZXlfcGhyYXNlLCBzaXplb2Yoa2V5X3BocmFzZSksIDEsIEZpbGUpOwoKICAgIGZyZWFkKCZ0ZXh0LCBzaXplb2YodGV4dCksIDEsIEZpbGUpOwoKCiAgICBmY2xvc2UoRmlsZSk7Cn0=