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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2017, 22:00   #1
lisica198808
Пользователь
 
Регистрация: 06.11.2012
Сообщений: 64
По умолчанию шифр Виженера. виснет. не выводится результат в файл

Сначала сделала под инглиш шифр Виженера(шифрование) - работала,теперь переделываю для русского языка( заглавных букв для начала). Но все виснет,не пойму где я "перестаралась", или что не доделала

Код:
#include "stdafx.h"


#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;

int main()
{  	FILE *f1;
	FILE *f2;
	FILE *f3;
	char key[100];
	char c;//буква слова
	int cur=0;//буква ключа
	setlocale(LC_ALL, "Russian");//подключаем кириллицу
	f1=fopen("file.txt","r");//открываем-считываем информацию из файла с текстом
	f2=fopen("shifr.txt","w");//открываем - записываем шифрованный текст в файл
	f3=fopen("deshifr.txt","w");//открываем - записываем дешифрованный текст в файл
	if (f1==NULL) 
	{
		printf("file not found\n");
		return 0;
	} 
	printf("ключ: ");
	scanf("%s",key);
	//шифрование файла

	int k;
	cout<<"Введите 1 для шифрования или 2 для расшифрования текста\n";
	cin>>k; 
	switch (k) //Если k
	{
	case 1: //Если выбрано шифрование
		{int c;
            while( (fgetc(f1))!= EOF)
			 {if (fread(&c,1,1,f1))//читаем файл с текстом
                    if ( isupper(c)) // если текущий символ - прописной(заглавный,isupper) 
                    { c=key[cur]+c-159;//буква шифра=буква ключа+буква текста- 159(крайний символ в прописном алфавите( реестре))
                    }
                    else if ( islower(c))
                    { c=key[cur]+c-239;;//буква шифра=буква ключа+буква текста- 239(крайний символ в строчном алфавите(реестре)
                       }
                   fputc(c, f2);    //сохраняем в файл для шифрованного текста - shifr.txt
            }
}
		fclose(f1); 
		fclose(f2); 
	}
	_getch();
	return 0;
}
lisica198808 вне форума Ответить с цитированием
Старый 17.03.2017, 22:25   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Английскую версию покажи.
(на скриншотах как шифруем, ключ, дешифровка).
и что ты ожидаешь получить (в Paint нарисуй) от русской программы.
ura_111 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифр Виженера (Взлом) RXK Помощь студентам 1 21.06.2015 19:25
Шифр Виженера в Delphi makson4ik Помощь студентам 2 07.05.2012 22:44
Шифр Виженера Radiy Паскаль, Turbo Pascal, PascalABC.NET 7 12.06.2010 10:05