Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 05.06.2021
Сообщений: 9
1

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

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

Author24 — интернет-сервис помощи студентам
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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.06.2021, 15:34
Ответы с готовыми решениями:

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

Ошибка деструктора класса при работе с бинарным файлом
Догадываюсь, что ошибка в неправильном взаимодействии с моей строкой, но не могу найти причину. class #include &lt;string&gt; ...

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.06.2021, 15:34
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной. Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
Формулы поворота
Igor3D 10.03.2025
Добрый день Тема Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости". x' = x * cos(a) - y * sin(a) y' = y * cos(a) + x * sin(a) Как бы Вы их. . .
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view. string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет! Отправлено 19 февраля 2025 года в 17:20:21 UTC Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home. Мы официально. . .
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru