Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2012, 19:38   #1
stdio
Форумчанин
 
Аватар для stdio
 
Регистрация: 14.02.2012
Сообщений: 105
Лампочка Ввод текста из файла,шифровка и вывод в новый файл

Всем Привет!) Подскажите у кого есть идеи, как зашифровать текст ? Цель сделать код максимально компактным . Так же буду благодарен если кто подскажет более сложную шифровку. Ниже прилагается то что уже наработано, оба кода работаю, было бы классно улучшить до предела.

С чего всё начиналось.

Код:
// шифратор.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
#include <stdio.h>

#define qw 32
#define fileread "C:\\qwerty.txt"
#define fshifr "C:\\shifr.txt"
#define fdeshifr "C:\\deshifr.txt"

void shifr(char *pr, size_t sz)
{
	FILE *shfp;
	shfp = fopen(fshifr,"a+");
	for(int i = 0 ; i < sz; i++)
	{
	if( pr[i] != '\0' && pr[i] != '\n' && pr[i] != '\t' && pr[i] != '\v' && pr[i] != '\r')
	{
		pr[i] += 1;
	}
	}
	fwrite(pr,sizeof(char),sz,shfp);
	fclose(shfp);
}

void deshifr(char *pr, size_t sz)
{
	for(int i = 0 ; i < sz; i++)
	{
	if( pr[i] != '\0' && pr[i] != '\n' && pr[i] != '\t' && pr[i] != '\v' && pr[i] != '\r'){pr[i] -= 1;}
	}
	FILE *fp;
	fp = fopen(fdeshifr,"a+");
	fwrite(pr,sizeof(char),sz,fp);
	fclose(fp);
}

void SeekAndDistroy(int pr1, const char *pr2)
{
	setlocale(LC_CTYPE,"Russian");
	char buf[qw];
	FILE *fp;
	fp = fopen(pr2,"r+");


	while (!feof(fp))
	{
		size_t numread = fread(buf, sizeof(char), qw, fp);
		switch(pr1)
		{
			case 1:
				shifr(buf,numread);
				break;
			case 2:
				deshifr(buf,numread);
				break;
		}
    }
    fclose(fp);
}


int _tmain(int argc, _TCHAR* argv[])
{
	SeekAndDistroy(1,fileread);
	std::cout << "==========================" << std::endl;
	SeekAndDistroy(2,fshifr);
	std::cout << "==========================" << std::endl;
	return 0;
}
а вот последний вариант)))

Код:
// шифратор.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <stdio.h>

#define qw 32
#define fileread "C:\\qwerty.txt"
#define fshifr "C:\\shifr.txt"
#define fdeshifr "C:\\deshifr.txt"

void SeekAndDestroy(int pr, const char *prread,const char *prwrite)
{
	char buf[qw];
	FILE *fp;
	FILE *fwr;
	fp = fopen(prread,"r+");
	fwr = fopen(prwrite,"a+");

	while (!feof(fp))
	{
		size_t numread = fread(buf, sizeof(char), qw, fp);
		switch(pr)
		{
		case 1:
			for(size_t i = 0 ; i < numread; i++)
		    buf[i] += 1;
			break;
		case 2:
			for(size_t i = 0 ; i < numread; i++)
		    buf[i] -= 1;
			break;
		}
		fwrite(buf,sizeof(char),numread,fwr);
    }
    fclose(fp);
	fclose(fwr);
}


void main()
{
	SeekAndDestroy(1,fileread,fshifr);
	SeekAndDestroy(2,fshifr,fdeshifr);
}
stdio вне форума Ответить с цитированием
Старый 16.04.2012, 09:40   #2
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

http://www.google.ru/#hl=ru&sugexp=f...w=1920&bih=986
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ввод и вывод текста в textBox SUDALV Windows Forms 15 06.03.2011 16:27
Вывод данных в новый файл ahvahsky2008 Microsoft Office Excel 11 21.12.2010 20:32
Не работает программа (ввод вывод текста) FreedomFighter Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 01.06.2009 19:49