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

Чтение из stdin и запись в stdout бинарной информации - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Переписать функцию sqrt, чтобы она работала с большими числами http://www.cyberforum.ru/cpp-beginners/thread896921.html
желательно что бы корень извлекался из строки и возвращался результат в виде строки
C++ Пытаюсь рекурсивно сделать задачу. гляньте код плз) КТО-НИБУДЬ, избавьте меня от мучений, гляньте код, посмотрите где я лажанул((( Пытаюсь решить задачу рекурсивно, упражняясь в этом непростом деле.. Я постарался быть няшой и всё подробно... http://www.cyberforum.ru/cpp-beginners/thread896920.html
как передать struct в list C++
Доброго времени суток. Такой вопрос: есть определенная структура, в которой есть несколько полей typedef struct _person{ long id; char name; size_t age; }person; далее есть...
C++ Ошибка с библиотеками, что-то клинит
Выбивает целую кучу ошибок. может я что-то забыл.. 1>f:\lessons\c++\projects-2013\fileotl\fileotl\otladka.cpp(47): error C2059: синтаксическая ошибка: if...
C++ Что это такое? http://www.cyberforum.ru/cpp-beginners/thread896848.html
Написал большую программу (курсовая работа), после многочисленных правок закончились красные подчеркивания в тексте программы, но при попытке собрать проект выдает вот это Программа - NetBeans...
C++ Обработка двустороннего списка Здравствуйте. Помогите или подскажите в написании обрабатывающей части в программе. Есть задание: тип информ поля. char*. Добавить в список элементы с номерами 1,3,5.. Написал часть... подробнее

Показать сообщение отдельно
anmartex
...
1706 / 1199 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
10.06.2013, 08:47
Dragokas, я не пойму, вы говорите о бинарной информации, а сами всё норовите поработать с данными как с текстом.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   char buff[50];
   const size_t nBuff = sizeof(buff) / sizeof(*buff);
   size_t n;
 
   while ((n = fread(buff, 1, nBuff, stdin)) > 0 )
   {
      fwrite(buff, n, 1, stdout);
   }
 
   return EXIT_SUCCESS;
}
Проверка банальная
Bash
1
$ ./program < program > result
Добавлено через 9 минут
Но т.к. у нас используется текстовый режим то имеет место быть преобразование 0x0D,0x0A в 0x0A и обратно

Добавлено через 12 минут
Решение для windows:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
 
int main()
{
   char buff[50];
   const size_t nBuff = sizeof(buff) / sizeof(*buff);
   size_t n;
 
   setmode(STDIN_FILENO, O_BINARY);
   setmode(STDOUT_FILENO, O_BINARY);
 
   while ((n = fread(buff, 1, nBuff, stdin)) > 0 )
   {
      fwrite(buff, n, 1, stdout);
   }
 
   return EXIT_SUCCESS;
}
А вот в linux-е бинарный режим идёт по дефолту.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru