Форум программистов, компьютерный форум CyberForum.ru

Чтение\запись файлов - C++

Восстановить пароль Регистрация
 
VirtualAngel
0 / 0 / 0
Регистрация: 11.02.2011
Сообщений: 3
11.02.2011, 23:58     Чтение\запись файлов #1
Помогите с такой проблемой: записываю в бинарный файл числа типа long double, после чтения из файла теряются данные - к примеру вместо 12 получается 11,3321. Работаю с потоками, для чтения и записи используб перегрузки >>, <<. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2011, 23:58     Чтение\запись файлов
Посмотрите здесь:

Чтение из двух файлов и запись в третий C++
Запись и чтение файлов на диск и с диска C++
Запись и чтение файлов на диск и с диска C++
C++ Быстрое чтение и запись файлов
C++ чтение/запись файлов
C++ Запись и чтение двоичных файлов
Чтение из двух файлов и запись в один C++
Чтение и запись файлов на удаленном компьютере C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
romanriddick
 Аватар для romanriddick
36 / 36 / 4
Регистрация: 06.07.2010
Сообщений: 154
12.02.2011, 00:05     Чтение\запись файлов #2
текст программы ...
VirtualAngel
0 / 0 / 0
Регистрация: 11.02.2011
Сообщений: 3
12.02.2011, 00:20  [ТС]     Чтение\запись файлов #3
// Работа с файлами.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <windows.h>
#include <math.h>



using namespace std;

char next;
int i;
long double ksimbol;
long double p;
long double q;
long double AKryptSimbol;
long double KryptSimbol;


//Размер имени файла
const int NameSize = 40;

//Массив для имени файла
char FileName[NameSize];
char KryptFile[NameSize];


void KRYPT() {

//Получение имени файла
cout<<"\nВведите имя текстового файла и путь к нему: \n";
cin >> FileName;

//Получение имени зашифрованного файла и пути к нему
cout<<"\nВведите имя шифруемого файла и путь к нему (например C:'\\'KryptFile.bin) :\n";
cin >> KryptFile;


ifstream inFile;
inFile.open(FileName);

ofstream outFile;
outFile.open(KryptFile);


//Проверка правильности открытия файла FileName
if (!inFile) {
cout<<"\n Ошибка при открытии файла\n"<<" "<<FileName<<"!!!";
}

if (!outFile) {
cout<<"\n Ошибка при открытии файла\n"<<" "<<KryptFile<<"!!!";
}



cout<<"\n Введите два простых числа.\n Сохраните их в тайне!!! Они определят ключ к шифру!!!\n";
cin>>p;
cin>>q;

long double n = p * q;
long double f = (p-1)*(q-1);
long double d = n - f;
long double e = 1/(fmod(d, n));

while(inFile>>next) {
if (next == 'q') { i =12; KryptSimbol = fmod(pow(i, e), n);}
if (next == 'w') { i =31; KryptSimbol = fmod(pow(i, e), n);}
if (next == 'e') { i =22; KryptSimbol = fmod(pow(i, e), n);}
outFile<<KryptSimbol<<" ";
}


inFile.close();
outFile.close();
}




void AKRYPT() {

//Получение имени зашифрованного файла и пути к нему
cout<<"\nВведите имя зашифрованного файла и путь к нему (например C:'\\'KryptFile.bin) :\n";
cin >> KryptFile;


ifstream inFile;
inFile.open(KryptFile);

if (!inFile) {
cout<<"\n Ошибка при открытии файла\n"<<" "<<KryptFile<<"!!!";
}

cout<<"\n Введите два простых числа.\n Сохраните их в тайне!!! Они определят ключ к шифру!!!\n";
cin>>p;
cin>>q;

long double n = p * q;
long double f = (p-1)*(q-1);
long double d = n - f;

while(inFile>>KryptSimbol) {

AKryptSimbol = fmod(pow(KryptSimbol, d) ,n);
cout<<AKryptSimbol<<" ";

if (AKryptSimbol == 12) { cout<<"q";}
if (AKryptSimbol == 31) { cout<<"w";}
if (AKryptSimbol == 22) { cout<<"e";}

}

inFile.close();
}



void _tmain(int argc, _TCHAR* argv[]) {
SetConsoleOutputCP(1251);


KRYPT();

AKRYPT();



getchar();
getchar();


}

Код такой. Прога реализует RSA шифрование(должна реализовать). Создай текстовый файл, загони в него символ Q. При шифровке он заменяется на число 12, которое должно получится после дешифровки. Посмотри пожалуйсто и помоги.
Yandex
Объявления
12.02.2011, 00:20     Чтение\запись файлов
Ответ Создать тему
Опции темы

Текущее время: 15:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru