Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Побайное считывание, Побайное считывание 
:(
    Опции темы
Fritz
Дата 16.11.2004, 02:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











люди помогите пожалуйста у меня такая задачка
нужно написать прогу которая побайтно считывает файл file.01 и пишет в файл file.02 в том же порядке инвертированные в двоичном коде символы. (Например, считав символ с двоичным кодом 01101000, пишет символ с кодом 10010111)
  Вверх
sergejzr
Дата 16.11.2004, 03:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



читайте char, а записывайте ~char

Вот, было случайно "под рукой". smile

Код

#include <stdio.h>
#include <io.h>

int main(int argc, char *argv[])
{
FILE * in, * out;
int  n;
char buf [1];
//нам необходимо 2 аргумента для работы программы infile,outfile
if(argc<3)
{//не указан infile outfile
 printf("use %s infile outfile\n",argv[0]);
}

in=fopen(argv[1],"rb");
out=fopen(argv[2],"w");

while ((n = read(fileno(in), buf, sizeof buf)) > 0)
{
 *buf=~*buf;
 write(fileno(out), buf, n);  
}

return 0;
}




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
cardinal
Дата 16.11.2004, 03:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Ну например что-нибудь такое:
Код

#include <stdafx.h>
#include <fcntl.h>
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys\\stat.h>

char buffer[1];

void main(void)
{
int fh1;
int fh2;

// Open file for input
if( (fh1 = _open("e:\\file.01", _O_CREAT | _O_RDONLY , _S_IREAD | _S_IWRITE)) == -1)
{
 perror( "open failed on input file" );
 exit(1);
}

// Open file for output
if( (fh2 = _open("e:\\file.02", _O_CREAT | _O_TRUNC | _O_WRONLY , _S_IREAD | _S_IWRITE)) == -1)
{
 perror("open failed on input file");
 exit(1);
}

while(_read(fh1, buffer, 1))
{
 buffer[0] ^= 0xff;
 _write(fh2, buffer, 1);
}

  _close(fh1);
  _close(fh2);
}

Добавлено @ 03:42
А sergej.z как всегда не спит... smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Guest
Дата 16.11.2004, 03:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











спасиба бальлошое
  Вверх
Guest
Дата 16.11.2004, 03:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











спасиба бальлошое

А могеш Ньюбу абьяснить чё делает каждый оператор?
  Вверх
cardinal
Дата 16.11.2004, 03:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Да, у sergej.z красивее smile, но я бы написал так:
Код

#include <stdio.h>
#include <io.h>

int main(int argc, char *argv[])
{
FILE *in, *out;
char buf[1];

//нам необходимо 2 аргумента для работы программы: infile и outfile

if(argc<3) //не указан infile outfile
{
 printf("use %s infile outfile\n",argv[0]);
}

in  = fopen(argv[1],"rb");
out = fopen(argv[2],"w");

while (read(fileno(in), buf, 1))
{
 buf[0] ^= 0xff;
 write(fileno(out), buf, n);  
}

return 0;
}

smile

Блин, 2 часа ночи, а не ему не мне не спится smile
Добавлено @ 03:52
Цитата(Guest @ 16.11.2004, 02:48)
А могеш Ньюбу абьяснить чё делает каждый оператор?

Ну а тут книгу достал бы что ли и покумекал немного... smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Guest
Дата 16.11.2004, 03:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











какую посоветуеш.
а то я прочитал дирка Хенкеманса, и Марка Ли.....
все всекал када про дос было..... а када начались всякие бяки... такма заумно написано было....

ЗЫ: это у тебя 2 часа ночи у меня уже 6
  Вверх
sergejzr
Дата 16.11.2004, 04:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



А что именно не понятно?
Смысл:
Цитата(sergej @ 16.11.2004, 02:22)
читайте char, а записывайте ~char

~инвертирует елемент.

Или как у кардинала: ксор со всеми еденицами делает тоже самое.
И конечно лучше сразу integer'ы переписывать. Так быстрее smile

Цитата(cardinal @ 16.11.2004, 02:51)
Блин, 2 часа ночи, а не ему не мне не спится smile

Точно smile пора завязывать smile
Добавлено @ 04:05
Уважаемый Fritz! Регестрируйтесь у нас на форуме smile Вам откроются новые возможности!


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2203 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.