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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.03.2015, 02:51   #1
WhiteJoker
Пользователь
 
Регистрация: 26.10.2014
Сообщений: 10
По умолчанию Помогите разобратся нужна помощь

Код:
    #include <iostream>
	#include <iomanip>
	#include <fstream>
	#include <string>
	 
	using namespace std;
	const int ARRAYSIZE = 26;
	const char alphabet[ARRAYSIZE] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
	
	void characterCount(char ch, int list[]);
	void calcShift( int& shift, int list[]);
	void writeOutput(ifstream &in, ofstream &out, int shift);
	 
	int main()
	{
	    int asciiCode = 0,
	        shift = 0;
	    string filename;
	    char ch;
	    ifstream infile;
	    ofstream outfile;
	    string reply;
	 
	    //input file
	 
	    infile.open("Ceasarencryptfile.txt", std::ios::out | std::ios::binary);
	    infile.exceptions ( ifstream::badbit );
        //try {
	        if (!infile.is_open()) { 
	 
	            cout << "Unable to open file or it doesn't exist." << endl;
	 
	            return 1;
	 
	        }
	    //output file
	 
	 
	 
	    outfile.open("outputhack");
	 
	    int list[ARRAYSIZE] = {0}; 
	 
	        while (infile)//(infile.peek() != EOF) 
	        {
	            infile.get(ch);
	            characterCount(ch, list); 
	        }
	    //}
	    //catch (ifstream::failure e){}

	 
	 
	 
	    infile.clear();
	    infile.seekg(0);
	    
	    calcShift (shift, list);
	    writeOutput(infile, outfile, shift); 
	 
	    return 0;
	    outfile.close();
		
	}
	 
	void characterCount(char ch, int list[])
	{
		for (unsigned int i = 0; i <= ARRAYSIZE; i++)
		{
	        if (ch == alphabet[i])//(ch >= 'A' && ch <= 'z') 
	        {
	            int asciiCode = 0;
 
	            asciiCode = static_cast<int>(ch); 
	            list[asciiCode]++; 
	        }
	    }    
	}
	 
	void calcShift( int& shift, int list[])
	{
	    int maxIndex = 0; 
	 
	    for (unsigned int i = 0; i <= ARRAYSIZE; i++)
	    {
	        if (list[maxIndex] < list[i])
	                maxIndex = i; 
	    }
	 
	    for (unsigned int i = 0; i <= ARRAYSIZE; i++)
	    {
	    if (maxIndex == alphabet[i])//(maxIndex >= 'A' && maxIndex <= 'Z') 
		    shift = 'E' - maxIndex;
	 
	    /*if (maxIndex >= 'a' && maxIndex <= 'z') 
	        shift = 'e' - maxIndex;*/
		}
	}
	 
	void writeOutput(ifstream &infile, ofstream &outfile, int shift)
	{
	    char ch;
	 
	    while (infile)/*(infile.peek() != EOF)*/ { 
	 
	        infile.get(ch);
			for (unsigned int i = 0; i <= ARRAYSIZE; i++)
			{ 
	 
	            if (ch == alphabet[i])//(ch >= 'A' && ch <= 'Z')
	            {
	                ch = 'A' + (((ch - 'A') + shift + 26) % 26);
	            }
	        /*    if (ch >= 'a' && ch <= 'z') 
	            {
	                ch = 'a' + (((ch - 'a') + shift + 26) % 26);
	            }*/
	        }    
	 
	        outfile << ch; //Print to the outfile
	        cout << ch;
	         
	    }
	}
понять немогу в чем беда
код компилится но прога вылетает
помогите пожалуйста
WhiteJoker вне форума
Старый 13.03.2015, 03:04   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Как минимум вылезли во всех циклах за массив list.
У вас может поменяться алфавит?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме
Старый 13.03.2015, 04:43   #3
WhiteJoker
Пользователь
 
Регистрация: 26.10.2014
Сообщений: 10
По умолчанию

В самой программе не должен менять длину

не подскажете как это исправить?
WhiteJoker вне форума
Старый 13.03.2015, 05:02   #4
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Для начала тема должна называться так чтобы было понятно что должно и как работать.

так как не смог переименовать даже. закрываю.
Alar вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь с формулой, помогите, пожалуйста... oksi-xd Паскаль, Turbo Pascal, PascalABC.NET 4 13.11.2014 22:16
помогите :нужна помощь написать кликер prostoshift1 Помощь студентам 7 19.09.2014 23:39
очень нужна помощь,помогите пожалуйста X3m41k Помощь студентам 6 10.06.2008 17:27