Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VirtualAngel
0 / 0 / 0
Регистрация: 11.02.2011
Сообщений: 3
#1

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

11.02.2011, 23:58. Просмотров 765. Ответов 2
Метки нет (Все метки)

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

чтение/запись файлов - C++
Здравствуйте, подскажите, пожалуйста, как решить проблему: Имеется массив типа BYTE, необходимо записать его КАК файл Microsoft Word,а...

Запись и чтение файлов - C++
Есть задача, имеются бинарные файл А и В, в А первые 10 чисел положительные, другие 10 отрицательные. Записать в В первые 5 положительных и...

Быстрое чтение и запись файлов - C++
Вопрос такой: имеется файл input.txt следующего вида: 5 12 6 7 44 2 1 2 3 4 5 2 343 634 54 1 123 2 345 56 56 11111 2222...

Запись, чтение, удаление из файлов - C++
Добрый день! Решаю задачку: 1) Нужно записать в файл - моя программа записывает в .dat файл вводимую структуру. Но можно ли это...

Запись и чтение двоичных файлов - C++
Здравствуйте! Как производится запись в двоичные файлы? Нормальных гайдов я не нагуглил. Пробовал так, но не получается.fstream...

Чтение/запись двоичных файлов - C++
задача,если упрощенно, записать в новый двоичный файл данные исходного файла в блоках по ,допустим, 20 байт. брал целочисленный массив...

2
romanriddick
36 / 36 / 4
Регистрация: 06.07.2010
Сообщений: 154
12.02.2011, 00:05 #2
текст программы ...
0
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, которое должно получится после дешифровки. Посмотри пожалуйсто и помоги.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2011, 00:20
Привет! Вот еще темы с ответами:

Чтение из двух файлов и запись в третий - C++
Имеется следующая задача: в цикле подсчитывается определенное значение функции fe, зависящее от одного параметра(вводится) и записывается в...

Запись и чтение файлов на диск и с диска - C++
НАПИСАТЬ ДВЕ ПРОГРАММЫ 1) СОЗДАНИЯ ФАЙЛА С УКАЗАННЫМИ ПОЛЯМИ И 2) СЧИТЫВАНИЕ ДАННЫХ ИЗ ФАЙЛА И ВЫВОД НА ЭКРАН МОНИТОРА В ВИДЕ ТАБЛИЦЫ,...

Чтение и запись файлов на удаленном компьютере - C++
Как послать с моего компютера на другой компютер файл, и ишьо как винять оттуда файл? Не примите за виросопистса, я в добрих намериниях.

Чтение из двух файлов и запись в один - C++
Помогите с одной задачей. У меня есть два файла: 1. &quot;oldmast.dat&quot; в котором 4 поля: номер счета клиента, фимилия, имя и баланс; 2....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru