32 / 34 / 21
Регистрация: 31.03.2018
Сообщений: 495
|
||||||
1 | ||||||
Увеличить размер файла до заданного, записав в начало файла необходимое количество нулей12.04.2018, 19:52. Показов 3679. Ответов 7
Здравствуйте! Мне нужно записать э-нты в начало файла. Перечитал несколько статей по ф-циям fseek, rewind, fopen. В конечном итоге я увидел, что програма работает не корректно и понял, что что-то недопонял. Помогите пожалуйста.
Вот задание: Кликните здесь для просмотра всего текста
Дан файл целых чисел, который имеет в себе меньше 50-ти э-нтов. Увеличить его размер до 50, записавши в начало файла необходимое кол-во нулей.
P. S. Я знаю один способ как еще можно выполнить это задание - это создать новый файл дописать нужное кол-во э-нтов и записать в него старый, но загвоздка в том, что этот способ простой и я знаю как его сделать, а я хочу это сделать с помощью перестановки курсора в начало файла; сделать запись нужного количества и это все в одном файле. Вот код: Кликните здесь для просмотра всего текста
Вот скрин с результатом:
0
|
12.04.2018, 19:52 | |
Ответы с готовыми решениями:
7
Увеличить размер файла до заданного, записав в начало файла необходимое количество нулей Увеличить размер файла до 50 элементов, записав в начало файла необходимое количество нулей Файлы. Увеличить размер файла до 50 элементов, записав в его начало необходимое количество нулей Увеличить размер файла до 20, записав в начало нули |
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
|
|
12.04.2018, 20:05 | 2 |
Iangyl, проблема в лишних символах?
Добавлено через 1 минуту это еще что такое? зачем цикл с простой проверкой? добавить еще что-бы запись в цикле происходила, и для этого лучше while() использовать. Добавлено через 1 минуту возможна утечка, хотя я не уверен, но может быть такое что деструктор не освобождает память, лучше явно это сделать. Добавлено через 2 минуты Сейчас не имею доступа к написанию кода, но лучше просто считай все что есть в файле, посмотри разницу между 50 и кол-вом в файле, и просто добавь нули, и после них вставь то что было в файле.
0
|
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
|
|
12.04.2018, 20:57 | 4 |
nd2, пардон, просто никогда в простых функциях не делал
через указатель, как по мне лучше без указателей обходится что бы не потеряться, имею ввиду в таких простых функциях.
0
|
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
|
||||||
12.04.2018, 21:35 | 6 | |||||
1
|
32 / 34 / 21
Регистрация: 31.03.2018
Сообщений: 495
|
|
13.04.2018, 18:21 [ТС] | 7 |
Можно вопрос? Забыть потому что с текстовыми это не делается или делается, но коряво, или делается, но лучше отдать предпочтение более простому варианту - создать новый файл и туда все залить в том порядке каком нужно?
0
|
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
|
13.04.2018, 23:19 | 8 |
Сообщение было отмечено Iangyl как решение
Решение
Теоретически это можно сделать, но есть такая поговорка: "овчинка выделки не стоит", поэтому:
Можно и не в новый, а в тот же, сохранив старые данные, и переписав файл с новыми данными (вариант notAll).
1
|
13.04.2018, 23:19 | |
13.04.2018, 23:19 | |
Помогаю со студенческими работами здесь
8
Уменьшить размер файла до 50 элементов, удалив из файла необходимое количество началь-ных элементов Уменьшить размер файла, удалив необходимое количество конечных чисел Удвоить размер файла, записав в конец файла все его исходные элементы Удвоить размер файла, записав в конец файла все его исходные элементы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |