Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работы с файлами на Си / 11 сообщений из 11, страница 1 из 1
09.10.2007, 19:45:19
    #34858285
Павел0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работы с файлами на Си
Здравствуйте.
Задача такая: дан файл, в котором содержится несколько вещественных чисел.
Нужно найти максимальное число и удалить его из файла. Язык программирования Си.

Максимальное число найти легко, и потом сдвинуть все элементы на один тоже можно, но как после этого удалить последний элемент файла?

Заранее благодарен.
...
Рейтинг: 0 / 0
09.10.2007, 21:20:47
    #34858432
sashka304
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работы с файлами на Си
открыл файл
читаешь из файла в буфер
закрыл файл
удаляешь, размножаешь делаешь все что душе угодно в буфере
открываешь файл в режиме для записи например (w) при этом все что было в файле сносится, и спокойненько пишешь в него все свой буфер например или то что тебе нада
...
Рейтинг: 0 / 0
09.10.2007, 21:29:46
    #34858445
Павел0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работы с файлами на Си
Не, так не пойдет. Нельзя использовать буфер и вспомогательные файлы тоже. Такое задание в лабораторной работе.
...
Рейтинг: 0 / 0
09.10.2007, 22:19:29
    #34858533
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работы с файлами на Си
sashka304 пишет:
> удаляешь, размножаешь делаешь все что душе угодно в буфере
> открываешь файл в режиме для записи например (w) при этом все что было в
> файле сносится, и спокойненько пишешь в него все свой буфер например или
> то что тебе нада

Не обязательно. Есть операция специальная, обрезать файл по текущее значение
файл-поинтера.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
09.10.2007, 22:22:05
    #34858541
Павел0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работы с файлами на Си
MasterZiv, не помнишь какая точно операция?
В Паскале есть, trancate называется, а вот на Си я такого аналога не нашел.
...
Рейтинг: 0 / 0
09.10.2007, 22:34:14
    #34858576
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работы с файлами на Си
Паша. Гарантирую тебе полный провал на собеседовании при поступлении ко мне на работу. Так программировать в принципе нельзя. Должна быть концепция NULL полей для данных во внешних файлах. Её и необходимо использовать.

Ну да ладно хрен с тобой. Делаю скидку на первый курс и бестолковых преподов-лаборантов. Значит сделаешь так:

1) Тебе дан файл F длиной N чисел.
2) Найдеш максимальное значение. Запомнишь его индекс N_max
3) Используя fseek или seek запишешь в позицию F(N_max) значение F(N-1)
4) Обрежешь файл на 1 число с "хвоста" (как предлагал MasterZiv).

Читай справочник по функциям io.h, fsntl.h, sys/stat.h, stdlib.h

Всего!
...
Рейтинг: 0 / 0
12.10.2007, 13:28:43
    #34864880
Павел0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работы с файлами на Си
mayton
4) Обрежешь файл на 1 число с "хвоста" (как предлагал MasterZiv).


все перечитал, не знаю как это сделать.
...
Рейтинг: 0 / 0
12.10.2007, 14:26:58
    #34865185
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работы с файлами на Си
Павел0 пишет:
> 4) Обрежешь файл на 1 число с "хвоста" (как предлагал MasterZiv).
>
> все перечитал, не знаю как это сделать.

int _chsize(
int fd,
long size
);

Parameters
fd
File descriptor referring to an open file.

size
New length of the file in bytes.

Но она нестандартная.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
12.10.2007, 15:07:34
    #34865405
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работы с файлами на Си
Вообще-то есть truncate и ftruncate
...
Рейтинг: 0 / 0
15.10.2007, 14:37:57
    #34869108
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работы с файлами на Си
blindedВообще-то есть truncate и ftruncateв вс чёт не видать
...
Рейтинг: 0 / 0
15.10.2007, 15:03:35
    #34869209
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работы с файлами на Си
maXmo blindedВообще-то есть truncate и ftruncateв вс чёт не видать

Они в unistd.h. Но автор, имхо, не уточнял среды/ос.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работы с файлами на Си / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]