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

Прочитать бинарник картинки через std::cin - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Бинарные файлы http://www.cyberforum.ru/cpp-beginners/thread996244.html
Привет! Ребят, нужна помощь! Есть, такая задачка: В бинарном файле задано множество точек на плоскости. Найти из данного множества равноудаленные точки от заданной с клавиатуры точки! Вообщем с...
C++ ПОЖАЛУЙСТА! Нужно исправить ошибки #include <assert.h> #include <string.h> #include <conio.h> #include <iostream> using namespace std; class st{ public: st(){}; st(const char str); st(const st &a); http://www.cyberforum.ru/cpp-beginners/thread996239.html
C++ Запись в файл, которого нет
в чём дело, почему после этого кода пишет, будто не найдена директори файла вместо out вставлял и app но результат тот же, файл в директории лежит, но его похоже компилятор не видит :\ ofstream...
C++ Польская нотация
Доброго времени суток! Нужно преобразовать аpифметическое выpажение в польскую запись, прямым методом(не обязательно). Пересмотрел много форумов и статей по данной теме, но так и ни чего не вышло,...
C++ Описание чисто виртуальных методов, Абстрактные классы http://www.cyberforum.ru/cpp-beginners/thread996210.html
Здравствуйте. Изучаю наследование, абстрактные классы. Возникло два вопроса: 1. Видел несколько примеров, вопрос - чем отличаются вот таких два описания чисто виртуальной функции. Нигде не нашел...
C++ Пожалуйста доделайте задачу (в массиве найти все числа,начинающихся с цифры выбранной пользователем) Помогите пожалуйста дописать программу, мне надо ее написать на Visual C++ 6.0 Вот задача В массиве целых чисел,расположенном в файле(кол-во чисел в фале произв-ое) найти все числа,начинающихся с... подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
1957 / 1450 / 116
Регистрация: 29.05.2011
Сообщений: 3,012
03.11.2013, 21:28
Цитата Сообщение от Tulosba Посмотреть сообщение
Вы бы лучше примерчик привели для прояснения, чтобы было видно разницу Win/не-Win.
Автор темы уже привёл пример.
Ну вот минимальный код.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <fstream>
 
int main()
{
    std::ofstream out("result.dat", std::ios::binary);
    int c;
    while ( (c = std::cin.get()) !=EOF)
        out.put(c);
    return 0;
}
Если в Windows запустить его как
Код
program.exe < somefile.dat
то во-первых в файле result.dat преобразуются некоторые переводы строки, а во-вторых чтение входного файа прекратится как только в нём встретится байт с кодом 0x1A (Ctrl-Z), который рассматривается как конец текстового потока. Собственно, это наследие CP/M, где такое поведение было необходимо.
В Linux файл result.dat будет в точности соответствовать исходному.
Цитата Сообщение от Tulosba Посмотреть сообщение
Файлы все бинарные, другое дело - режим открытия этих файлов.
Это понятно. Непонятно зачем в DOS принято, что стандартный поток должен быть исключительно текстовым.

Добавлено через 3 минуты
Если известен способ, как переоткрыть стандартный поток ввода в бинарный режим (но не из файла, так как данные и по конвейеру могут передаваться), то именно это и нужно автору.
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru