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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2016, 10:20   #1
Trane133
Новичок
Джуниор
 
Регистрация: 04.05.2014
Сообщений: 2
По умолчанию Немного поправить задачу на C++

10.Функция-шифратор. Читает из файла и пишет в другой файл закодированные сим-волы.
Схема шифровки: c = c^key[i], где key - строка, которая передается как параметр ко-мандной строки. Программа используется символы из key циклически, пока не будет считан весь ввод.

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

#include "stdafx.h"
#include<iostream>
#include<iomanip>
#include<stdlib.h>
#include<conio.h>
#include <stdio.h>
#include <locale>

int schet=0;
int chet=0;
int bufc=0;
char strok[30];
FILE *res;
char* file_name = "result.txt";
char* name_shifr = "shifr.txt";
char* title;

void main(void)
{
	setlocale(LC_ALL, "RUS");
	char  key[30];
	FILE *in, *tfile, *f;
	char title[30];
	char* nazv = "test.txt";
	void shifr(FILE* tfile, char key[]);

	printf("Введите ключ-строку шифрования: ");
	scanf("%s", key);
	printf("Введите имя файла для шифрования: ");
	scanf("%s", title);
	if ((f=fopen(nazv, "r"))==NULL)
		printf("Файл не открыт!");
	//else 
		//perenos(f,nazv);
		//if ((tfile=fopen(title, "r"))==NULL)
		//	printf("Один из файлов не открыт!");
		else
		{
		shifr(tfile, key);
		}
}

void shifr(FILE* tfile, char key[])
{
	char c;
	int ch;
	FILE *rez, *krez;

	std::cout<<std::endl;
	std::cout<<"Ключ: "<<key<<std::endl;
	int i=0;
	if ((rez=fopen(name_shifr, "wt"))==NULL) printf("Файл для записи не открыт!", name_shifr);
	else 
	{
		while(!feof(tfile))
		{
			c=getc(tfile);
			c=c^key[i];
			putc(c, rez);
			i++;
			if (i==10) i=0;
		}
	}
	fclose(rez);
	rez=fopen(name_shifr, "r");
	if ((krez=fopen("end.txt", "wt"))==NULL) printf("Файл для записи не открыт!");
	else 
	{
		i=0;
		while(!feof(rez))
		{
			c=getc(rez);
			c=c^key[i];
			putc(c, krez);
			i++;
			if (i==10) i=0;
		}
	}
}
Была большая программа с нужной штукой, я по удалял не нужный код, но все равно то что нужно пока не работает. Помогите что нужно удалить еще.

Последний раз редактировалось Trane133; 05.04.2016 в 10:40.
Trane133 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Немного переделать задачу(pascal) VaKyM Помощь студентам 1 05.01.2012 17:58
немного исправить задачу на си KrisPipis Помощь студентам 0 11.05.2011 14:22
СТРУКТУРА=))) ПОПРАВИТЬ НА С++ Мальvina Помощь студентам 1 20.12.2010 21:34