0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 9
1

Потоки. Бинарный ввод/вывод

21.03.2014, 22:24. Показов 7625. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать бинарный вывод в файл. По учебнику вроде бы что-то в этом роде:

C++
1
2
3
4
5
6
7
ofstream f("test.bin", std::ios::binary);
if (f.is_open())
{
    f << j;
    f.close();
}else 
     cout << "Файл не может быть открыт" << endl;
однако файл сохраняется не в бинарном формате

Добавлено через 1 минуту
j - числовая константа;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2014, 22:24
Ответы с готовыми решениями:

Записать в бинарный файл массив объектов Student (бинарный файловый ввод/вывод)
Здравствуйте. Стоит задача записать в бинарный файл массив объектов student: class student {...

Бинарный ввод\вывод в файл
#include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class Person {...

Ввод-вывод, потоки
Где лучше всего описано, как работает система вводы-вывода в C++ и что такое потоки? И желательно...

Ввод и вывод структуры в бинарный файл
Всем привет, друзья! Как вообще происходит Ввод и вывод структуры в бинарный файл. Можете...

13
Модератор
Эксперт С++
13416 / 10524 / 6287
Регистрация: 18.12.2011
Сообщений: 28,106
21.03.2014, 22:42 2
Используйте метод
C++
1
f.write(j,sizeof(j));
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 9
21.03.2014, 22:47  [ТС] 3
j - это целочисленная переменная. в программе задана
C++
1
int j;
Добавлено через 1 минуту
Вот весь код программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
 
int j = 4;
 
int main()
{
    setlocale(LC_ALL, "russian");
 
    using namespace std;
    
    ofstream f("test.bin", std::ios::binary);
    if (f.is_open())
    {
        f << j;
        f.close();
    }
    else cout << "Файл не может быть открыт" << endl;
 
    system("pause");
}
Добавлено через 1 минуту
Эта операция требует переменную типа char, а реализовать нужно с переменной int
0
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 22:53 4
Цитата Сообщение от Andrei731 Посмотреть сообщение
Эта операция требует переменную типа char, а реализовать нужно с переменной int
О какой операции идёт речь?
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 9
21.03.2014, 22:54  [ТС] 5
C++
1
f.write(j,sizeof(j));
0
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 22:58 6
Лучший ответ Сообщение было отмечено Andrei731 как решение

Решение

Режим, в котором открыт файл, не определяет, в общем случае, в каком виде будут записаны (или считаны) данные в файл. Это определяет метод записи (или чтения) из файла.

Добавлено через 3 минуты
Это так делается:
C++
1
f.write((const char*)&j,sizeof(j));
1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 9
21.03.2014, 22:59  [ТС] 7
Изменив строку
C++
1
f << j
на
C++
1
f.write(j, sizeof(j));
получаю ошибку:
Ошибка 1 error C2664: "std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::write(const _Elem *,std::streamsize)": невозможно преобразовать аргумент 1 из "int" в "const char *" c:\users\andre_000\documents\visual studio 2013\projects\проект2\проект2\main.cpp 40
2 IntelliSense: аргумент типа "int" несовместим с параметром типа "const char *" c:\Users\Andre_000\Documents\Visual Studio 2013\Projects\Проект2\Проект2\main.cpp 40

Добавлено через 1 минуту
Спасибо. Может посоветуете какую нибудь книгу по С++?
0
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 23:02 8
Цитата Сообщение от Andrei731 Посмотреть сообщение
Может посоветуете какую нибудь книгу по С++?
Литература C++
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 9
21.03.2014, 23:03  [ТС] 9
Это я уже смотрел. Мне бы поподробнее и с примерами)
0
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 23:05 10
Цитата Сообщение от Andrei731 Посмотреть сообщение
Это я уже смотрел
Это - что? Все книги посмотрели?
Цитата Сообщение от Andrei731 Посмотреть сообщение
Мне бы поподробнее и с примерами)
В книгах всё очень подробно и, обязательно, с примерами.
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 9
21.03.2014, 23:07  [ТС] 11
Смотрел книгу Харви Дейтла. Примеры там не совсем те которые хотелось бы
0
9 / 9 / 3
Регистрация: 06.03.2014
Сообщений: 106
21.03.2014, 23:09 12
Попробуй такой вариант под себя переделать:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int saveToList(list_head *list, int list_size){
    list_node *pr=list->head;
 
    fstream file;
    file.open("info1.txt", ios::out|ios::binary);
    if (file.fail()){
        cerr<<"File open error\n";
        return 0;
    }
    while(pr!=NULL){
        file.write((char*)pr->data, list_size);
        pr=pr->next;
        if (file.fail()){
            cerr<<"File write error\n";
        }
    }
    file.close();
    return 1;
}
1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 9
21.03.2014, 23:10  [ТС] 13
Спасибо. Все получилось.
0
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 23:18 14
Лучший ответ Сообщение было отмечено Andrei731 как решение

Решение

Цитата Сообщение от Andrei731 Посмотреть сообщение
Смотрел книгу Харви Дейтла. Примеры там не совсем те которые хотелось бы
Эта не понравилась - другие есть. В дополнение к книгам инет есть. Там всего хватает: и объяснений, и примеров.
http://ci-plus-plus-snachala.ru/?p=86
Открытие бинарного файла для чтения
и т.д, и т.п.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2014, 23:18
Помогаю со студенческими работами здесь

Ввод/вывод структуры в текстовый и бинарный файл
есть код #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include...

Ввод и вывод динамического массива структур в бинарный файл
Добрейшего вечерочка, дамы и господа. Есть программа, которая считывает массив структур из...

Потоки. Ввод-вывод. Ошибка на этапе компиляции.
#include &lt;windows.h&gt; #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace...

Бинарный файловый ввод/вывод: реализовать операции для работы с массивом структур типа WORKER
Здравствуйте, видел очень много подобных программ, но у меня особый случай в общем суть программы:...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru