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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2012, 12:32   #1
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию исправить ошибку С++

Здравствуйте. Есть программа на тему шифр Вижинера она работала через консоль т.е. в консоль вводим ключ и текст для зашифровки и выводится зашифрованы текст. Программа работала нормально. Но мне сказали переделать её так что бы текст для зашифровки вводился не в консоль, а брался с 1-го txt файла и записывался в 2-ой txt файл. Ключ как и был должен вводится в консоли. Я пытался написать но у меня пишет что в txt файле неопознанный символ хотя там все норм. Помогите пожалуйста заранее спасибо.

Вот код
http://miron.in/96776
803 вне форума Ответить с цитированием
Старый 03.06.2012, 13:19   #2
_kilik_
Пользователь
 
Аватар для _kilik_
 
Регистрация: 16.08.2011
Сообщений: 69
По умолчанию

Программа некорректно читает русские символы.
Попробуй установить .1251 кодировку.
к примеру
Код:
string LoadFromFile(bool des = false){

        string str;

        char buffer;

        char* filename = des ? "D:\\a1.txt" : "D:\\a2.txt";

        ifstream f;

        f.open(filename, ios::in);
		int cp=GetConsoleCP();//взять код.
		SetConsoleCP(1251);//установить
        while (f.get(buffer))
                str += buffer;  
		SetConsoleCP(cp);// возвратить старую код.
		f.close();    
        return str;
}
_kilik_ вне форума Ответить с цитированием
Старый 03.06.2012, 17:27   #3
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию

Я сделал так в место этого
Код:
// читаем из файла.
string LoadFromFile(bool des = false)
{
        string str;
        char buffer;
        char* filename = des ? "Desifr.txt" : "Output.txt";
        ifstream f;
        f.open(filename, ios::in);
        while (f.get(buffer))
                str += buffer;   
 
    f.close();   
        return str;
}
Я вставил то что вы написали, в папку с исходником кинул текстовые файлы один пустой а один с текстом, в файле было только 1 слова и все ровно пишет что неизвестный символ. Может я что то не то делаю? подскажите пожалуйста.

Помогите кто пожалуйста.

Последний раз редактировалось Stilet; 03.06.2012 в 19:51.
803 вне форума Ответить с цитированием
Старый 04.06.2012, 18:46   #4
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию

Может есть ещё способ кодировки кроме 1251
803 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить ошибку imworld Помощь студентам 1 20.02.2012 19:54
исправить ошибку Дмитрий Solov Паскаль, Turbo Pascal, PascalABC.NET 1 03.12.2011 13:26
С# Исправить ошибку PROkaZZZniK Помощь студентам 3 20.11.2011 22:49
Исправить ошибку LLIypLLIyH Помощь студентам 5 16.06.2008 16:50