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

Проблема при работе с бинарным файлом. Необходимо дописать число в конец файла

05.06.2021, 15:34. Показов 181. Ответов 0

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
//Есть 2 программы, первая заполняет бинарный файл, вторая читает из него данные.
//код который создаёт и заполняет файл
/*#include <iostream>
#include <fstream>
#include <string>
#include <time.h>
using namespace std;
int main()
{
    srand(time(NULL));
    setlocale(LC_ALL,"RUSSIAN");
    int i;
    int y[10];
    int x[10];
    for(i = 0;i<10;i++)
        y[i] = rand()%30 -10;
 ofstream out("C:\\1.bin",ios::binary);
   out.write((char*)&y,sizeof y);
 out.close();
 ifstream in("C:\\1.bin",ios::binary);
 in.read((char*)&x,sizeof x);
 for(i=0;i<10;i++)
    cout<<x[i]<<' ';
 in.close();
 return 0 ;
}
*/
//основной код
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <time.h>
using namespace std;
bool condition(int a, int b) {
    return a == b;      // удаление определённого числа из массива
    //return a < b;         // удалить из массива все элементы, которые больше чем число введённое пользователем
}
 
int main()
{
    srand(time(NULL));
    setlocale(LC_ALL,"RUSSIAN");
 int i,j,m=10;
int array[m];
ifstream in("C:\\1.bin",ios::binary);
 in.read((char*)&array,sizeof array);
 for(i=0;i<10;i++)
    cout<<array[i]<<' ';
   cout<<endl;
   in.close();
    int number;
        cout << "Какое значение удалить из файла? " << endl;
        cin >> number;
        bool found = false;
        for (i = 0; i < 10; ++i)
            if (condition(number, array[i])) {
                found = true;
                break;
            }
        if (found) {
            int offset = 0;
            if (i < 10) {
                for (j = i; j < 10; ++j) {
                    if (condition(number, array[j])) {
                        ++offset;
                        continue;
                    }
                    array[j - offset] = array[j];
                }
            }
            m -= offset;
 
 
        for (i = 0; i < m; ++i)
        cout << setw(3) << array[i];
        cout << endl;
        delete[] array;
        }
        else
        {
            cout << "Указанного числа нет в файле, запись в конец" << endl;
            cout<<number<<endl;
            fstream out;
            out.open("C:\\1.bin",ios::out | ios::app | ios::binary);
            out.write((char*)&number,sizeof(number));
            for (i = 0; i < m; ++i)
            cout << setw(3) << array[i];
            cout << endl;
            delete[] array;
            out.close();
        }
 return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2021, 15:34
Ответы с готовыми решениями:

Проблемка при работе с бинарным файлом
Q живым.Есть проблема при работе с бинарным файлом.В файле 1.dat пытался разместить 10 чисел,но...

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

Переезд проекта из delphi7 в xe5 / ошибка при работе с бинарным файлом
Доброго времени суток. Недавно переехал с семёрки на xe5, перенёс проект и... он вешается....

При работе с бинарным файлом со структурой ошибка access violation reading location
Эта программы создает 2 структуры #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;fstream&gt; ...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2021, 15:34

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Аналог !foef, или как найти конец строки при работе с файлом
День добрый. Если вопрос касается конца файла, то можно написать так: long count; char massiv;...

После создания файла дописать в конец вещественное число N
Создать файл, компоненты (количество &lt;=10) которого являются вещественными числами. После создания...

После создания файла дописать в конец вещественное число N
Создать файл, компоненты (количество &lt;=10) которого являются вещественными числами. После создания...

Дописать в конец файла общее число содержащихся в нем строк
Помогите решить задачу. ПЛИИИИИИЗЗЗЗ!!!!!!!!!!!!!!!!!! Написать программу, которая позволяет...

Проблема с бинарным/текстовым файлом
Всем привет! Ситуация такова...с ftp загружал бинарные файлы...по невнимательности указал...

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


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

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

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