Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
want_my_dream
0 / 0 / 1
Регистрация: 11.04.2015
Сообщений: 31
1

Запись и чтение файлов

06.03.2016, 13:58. Просмотров 268. Ответов 5
Метки нет (Все метки)

Есть задача, имеются бинарные файл А и В, в А первые 10 чисел положительные, другие 10 отрицательные. Записать в В первые 5 положительных и первые 5 отрицательных из А. Вроде бы все хорошо шло, создал А, сгенерировал случайные числа. Но когда пытался записать из А в массив, а затем из массива в В, что-то пошло не так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
 
int main() {
    srand(unsigned(time(NULL)));
 
    char buff[32];
 
    fstream A("D:\\A.bin", ios::binary | ios::out), B("D:\\B.bin", ios::binary | ios::out); // Открываю оба файла для записи в них
 
    // Генерирую случайные числа в А
    if (A.is_open() && B.is_open()) {
        for (int i = 0; i < 10; i++) {
            int x = rand() % 10;
            A << x << " ";
        }
        for (int i = 0; i < 10; i++) {
            int x = rand() % 10 - 10;
            A << x << " ";
        }
 
        A.open("D:\\A.txt", ios::binary | ios::in); // Открываю А для чтения
 
        for (int i = 0; i < 5; i++) {
            A >> buff[i]; // Считываю из А в buff
            B << buff[i]; // Записываю в B из buff
        }
 
        A.close();
        B.close();
    }
    else cout << "Unable to open files!" << endl;
 
    system("pause");
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2016, 13:58
Ответы с готовыми решениями:

Чтение запись файлов
нужно из файла f записать 20 символов в файл fp, сделать отступ и повторять пока не закончится файл...

Чтение\запись файлов
Помогите с такой проблемой: записываю в бинарный файл числа типа long double, после чтения из файла...

чтение/запись файлов
Здравствуйте, подскажите, пожалуйста, как решить проблему: Имеется массив типа BYTE, необходимо...

Чтение и запись текстовых файлов
Когда я запускаю код, открывается консоль с сообщением &quot;&quot;вызов: PR &lt;имя файла&gt;&quot; и больше ничего не...

Чтение и запись информации из файлов
в принципе все понятно , но нужна помощь с выводом массивов в консоль ,ибо все варианты которые я...

5
nd2
3099 / 2593 / 1134
Регистрация: 29.01.2016
Сообщений: 8,690
06.03.2016, 14:06 2
Цитата Сообщение от want_my_dream Посмотреть сообщение
// Открываю А для чтения
Закрой сначала. Открытие для чтения всегда проверять нужно. Почему D:\\A.txt, если был D:\\A.bin?

Добавлено через 2 минуты
Цитата Сообщение от want_my_dream Посмотреть сообщение
C++
1
2
A >> buff[i]; // Считываю из А в buff
B << buff[i]; // Записываю в B из buff
Это не бинарные методы чтения/записи.
0
want_my_dream
0 / 0 / 1
Регистрация: 11.04.2015
Сообщений: 31
06.03.2016, 14:14  [ТС] 3
Потому что изначально я делал все просто в txt. Но по заданию надо в бинарных файлах

Добавлено через 2 минуты
Но суть, что оно просто не работает, бинарный файл или нет. Не хочет записывать из А в buff. Поэтому В содержит МММММ.
0
nd2
3099 / 2593 / 1134
Регистрация: 29.01.2016
Сообщений: 8,690
06.03.2016, 14:28 4
want_my_dream, ты понимаешь, что тебе пишут?
Цитата Сообщение от nd2 Посмотреть сообщение
Закрой сначала. Открытие для чтения всегда проверять нужно. Почему D:\\A.txt, если был D:\\A.bin?
Создаешь один файл: D:\\A.bin, читать пытаешься из другого: D:\\A.txt (не проверяя: открылся он для чтения или нет).
0
want_my_dream
0 / 0 / 1
Регистрация: 11.04.2015
Сообщений: 31
06.03.2016, 14:39  [ТС] 5
Проверил. Но все равно не работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
 
int main() {
    srand(unsigned(time(NULL)));
 
    char buff[32];
 
    fstream A("D:\\A.txt", ios::out), B("D:\\B.txt", ios::out); // Открываю оба файла для записи в них
 
    // Генерирую случайные числа в А
    if (A.is_open() && B.is_open()) {
        for (int i = 0; i < 10; i++) {
            int x = rand() % 10;
            A << x << " ";
        }
        for (int i = 0; i < 10; i++) {
            int x = rand() % 10 - 10;
            A << x << " ";
        }
 
        A.open("D:\\A.txt", ios::out); // Открываю А для чтения
 
        if (A.is_open()) {
 
            for (int i = 0; i < 5; i++) {
                A >> buff[i]; // Считываю из А в buff
                B << buff[i]; // Записываю в B из buff
            }
 
            A.close();
            B.close();
        } else cout << "Unable to open file!" << endl;
    }
    else cout << "Unable to open files!" << endl;
 
    system("pause");
    return 0;
}
0
nd2
3099 / 2593 / 1134
Регистрация: 29.01.2016
Сообщений: 8,690
06.03.2016, 16:37 6
Цитата Сообщение от want_my_dream Посмотреть сообщение
A.open("D:\\A.txt", ios::out); // Открываю А для чтения
...
Цитата Сообщение от nd2 Посмотреть сообщение
Закрой сначала.
ios::out - это у тебя чтение?
0
06.03.2016, 16:37
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2016, 16:37

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

Запись, чтение, удаление из файлов
Добрый день! Решаю задачку: 1) Нужно записать в файл - моя программа записывает в .dat файл...

C++ - Fortran (чтение и запись файлов)
Добрый день! Средствами языка Fortran создается бинарный файл прямого доступа, куда...


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

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

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