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

Поблочное считывание с файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Стенки внутри лабиринта http://www.cyberforum.ru/cpp-beginners/thread552232.html
Господа эксперты,не пойму почему код не работает: "Мышь" не должна бегать по стенка(стенки определяются в массиве),а на деле результата нет. void Game::ControlMouse() { Game gc; int...
C++ Прямоуголиник в WinAPI Парнишки, мой преподаватель вечно ко мне пристает, я уже устала от его заморочек. В последний раз он мне задал сделать программу в Вижуал Студио приложение WinAPI Я в ней ничего не понимаю, так как... http://www.cyberforum.ru/cpp-beginners/thread552225.html
Описать функцию Пятница13(d), которая определяет количество дней до даты d, ... C++
Помогите пожалуйста очень нужно решить задачу..... Дано type число = 1..31; месяц = 1..12; год = 1..2000; дата = record ч : число; м : месяц; г : год
C++ Работа с процесамми, и памятью
Интересует несколько вопросов, если можете ответье пожалуйста. 1. Каким образом можно считать обьем памяти которую занимает определенный процесс? 2. Каким образом можно ...
C++ Танчики в graphics.h http://www.cyberforum.ru/cpp-beginners/thread552182.html
Здравствуйте! Задали задания в устаревшей и совершенно мне неизвестной библиотеке graphics.h создать игру танки. Я уже прописал движение своего танка и выстрел, но при выстреле танк стоит на месте...
C++ Из обычного в динамический массив Помогите пожалуйста переделать массив из обычного в динамический. #include "stdafx.h" #include <iostream>//i/o #include <conio.h> //getch #include <cmath> //fabs, abs #include "stdafx.h"... подробнее

Показать сообщение отдельно
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
19.04.2012, 02:05  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 if (argc!=5) { printf("Not enough arguments\n"); system("pause"); return 0; }
 FILE *f=fopen(argv[1],"rb");
 FILE *f1=fopen(argv[2],"wb");
 unsigned long long k=0;
 int length=strlen(argv[3]);
 unsigned long long temp=1ULL;
 for (int i=length-1;i>=0;i--)
 {
  k+=temp*(argv[3][i]-'0');
  temp*=10;
 }
 printf("key=%llu\n",k);
 bool action=(argv[4][0]=='1'); 
 printf("\n%s",(action)?"Coding\n":"Decoding\n");
 unsigned long long input;
 unsigned long long output;
 size_t result;
 bool END=false;
 while (1)
 {
  input=0;
  result =fread (&input,8,1,f);
  if (result==0&&!action) break;
  output=binary2ull(DES(input,k,action));
  fwrite (&output,8,1,f1);
  if (result==0&&action) break;
 }
 fclose(f);
 fclose(f1);
 system("pause");
Сделал так, вроде всё работает Конец заполняет NUL'ами, т.е. дешифрованный файл отличается от начального, если размер начального не был кратен 8. Можно теоретически хранить еще одним байтом количество бит, которые надо удалить с конца, но мне кажется, что это как-то по-другому делают.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.