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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
Luzifer
6 / 6 / 2
Регистрация: 28.06.2010
Сообщений: 91
#1

ofstream std::ios::binary - C++

28.03.2013, 00:38. Просмотров 2680. Ответов 9
Метки нет (Все метки)

почему не сохраняет в бинарном виде?
C++
1
2
3
4
5
6
7
8
9
10
std::ofstream out_m(str_m, std::ios::binary);
for(int i = 0; i < counter_m; i++)
{
    tmp_m = save(&temp_m);                      
    if(i != counter_m - 1)
        out_m << tmp_m.Name() << " " << tmp_m.Surname() << " " << tmp_m.First_name() << " " << tmp_m.Destination_year() << " " << tmp_m.Autobiography() << "\n";
    else
        out_m << tmp_m.Name() << " " << tmp_m.Surname() << " " << tmp_m.First_name() << " " << tmp_m.Destination_year() << " " << tmp_m.Autobiography();
}
out_m.close();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2013, 00:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ofstream std::ios::binary (C++):

Std::ios::binary зачем нужно это для записи структур - C++
зачем нужно это для записи структур ? гугл чёткого ответа не дал

Error: ambiguous overload for 'operator<<' (operand types are 'std::ofstream {aka std::basic_ofstream<char>}' - C++
на #define LOG(Variable) Log&lt;&lt;&quot;&lt;&quot;;...

Чтение бинарного файла в поток std::ifstream и вывод в другой бинарный файл std::ofstream (создание копии) - C++
Проверил работу программы на маленькой картинке(744 байт). Все работает. С несколько бОльшими файлами(512КБ) нет. Суть задачи в том,...

ofstream & ifstream :: binary read-write struct - C++
Не пойму в чем дело... но я не могу считать всю структуру FNTBINARY из файла, файл - это она и есть в бинарном виде, одна структура...

Оператор '!=' для объекта std::ofstream и NULL - C++
Здравствуйте, помогите решить эту проблему: До этого сидел на win7 x64 home там тоже была эта ошибка, я решил её путём if (ofile !=...

Std::ofstream запись и чтение переменных в бинарный файл - C++
int a = 1; std::ofstream file(&quot;test.settings&quot;, std::ios::in | std::ios::out | std::ios::binary); ...

9
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
28.03.2013, 00:42 #2
может через
C++
1
out_m.write();
0
Luzifer
6 / 6 / 2
Регистрация: 28.06.2010
Сообщений: 91
28.03.2013, 00:43  [ТС] #3
не спасло... п.с. реализуй плиз пример (мот неверно заюзал)
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
28.03.2013, 00:52 #4
http://www.cplusplus.com/reference/ostream/ostream/write/
1
Luzifer
6 / 6 / 2
Регистрация: 28.06.2010
Сообщений: 91
28.03.2013, 00:59  [ТС] #5
заюзал так... один фиг\
C++
1
2
3
4
5
6
                        std::ofstream out_m(str_m, std::ofstream::binary);
                        for(int i = 0; i < counter_m; i++)
                        {
                            tmp_m = save(&temp_m);
 
                            out_m.write(tmp_m.Name(), strlen(tmp_m.Name()));
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.03.2013, 01:31 #6
Что хотите увидеть в файле, если пшите в бинарном режиме символы? Не символы?
1
Luzifer
6 / 6 / 2
Регистрация: 28.06.2010
Сообщений: 91
28.03.2013, 01:35  [ТС] #7
пишу символы (setlocale(LC_ALL, "Russian")), хочу увидеть в бинарнике (иероглифы)
0
Kuzia domovenok
1951 / 1804 / 140
Регистрация: 25.03.2012
Сообщений: 6,247
Записей в блоге: 1
28.03.2013, 01:38 #8
так символы они и в Африке символы.
Это число ты можешь записать или как число
8 = 0x08
или как последовательность символов ASCII
"8" = {0x56}
А символы они только символы! (Правда там кодировка может быть не ASCII, но это уже другой разговор)
1
Luzifer
6 / 6 / 2
Регистрация: 28.06.2010
Сообщений: 91
28.03.2013, 01:40  [ТС] #9
значит... виноват... буду знать
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.03.2013, 01:41 #10
Цитата Сообщение от Luzifer Посмотреть сообщение
пишу символы (setlocale(LC_ALL, "Russian"), хочу увидеть в бинарнике (иероглифы)
Не увидите, это не просто числа. Пишутся коды символов. В каком режиме - разницы практически нет. Программа, которая открывает файл для просмотра, выводит символы (если они существуют для этого кода), соответствующие этим кодам. Так как пишутся коды символов, то они и будут выведены.
0
28.03.2013, 01:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2013, 01:41
Привет! Вот еще темы с ответами:

А есть какой нибудь широкий аналог std::ofstream? - C++
Ну чтоб wchar_t и указатель на wchar_t принимал. Хоть в какой нибудь уникодовой кодировке.

Суть работы флага ios::binary - C++
Открываю файл для записи: -&gt; ofstream ofile; ofile.open(&quot;qwe.dat&quot;, ios::app | ios::binary); // Первый аргумент имя...

std::ios::hex или std::ios.hex - C++
привет в коде встретил вот такую строчку ss.setf(std::ios.hex, std::ios::basefield); и на VS2008 это работает. Разве это...

C:\Projects\mmz\Compile\CompileAMD64\mmzCompileAMD64\TProjec t.cpp|74|error: declaration of 'std::ofstream File' shadows - C++
error: declaration of 'std::ofstream File' shadows a parameter| std::ofstream File;


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

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

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