![]() |
|
Модераторы: bsa |
![]()
|
|
| Hikolay |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Здравствуйте!
Собственно такая задача: Дан файл с числами типа int. Не используя промежуточного файла и оперативной памяти, удалить все первые элементы пар чисел, сумма которых превышает некоторое заранее заданное число. Поискав в MSDN нашел две функции для работы с бинарными файлами _putw()-записывает число в файл и _getw()-считывает число из файла.
Но при выдачи на экран из файла выдает: -8499 -8499 -8499 -8499 -8499 -8499 -8499 -8499 -8499 -8499 Хотя числа вводил подряд от 1 до 10. Так вот хотел бы узнать в чем проблема? Модератор: пользуйся кнопкой "Код" Это сообщение отредактировал(а) bsa - 16.2.2009, 11:43 |
|||
|
||||
| cutwater |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 2 Всего: 10 |
посмотрите ф-ции fread и fwrite
в документации (man 3 getw) рекоммендуется пользваться ими. Совершенно непонятны магические числа. и убедительная просьба пользоваться кнопкой "код" Добавлено через 5 минут и 10 секунд И кстати заметил что у Вас файл открыт только на запись. Это сообщение отредактировал(а) cutwater - 16.2.2009, 01:50 |
|||
|
||||
| Hikolay |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Благодарю за помощь. Зарыл файл и открыл для чтения и все решилось.
|
|||
|
||||
| Hikolay |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
У меня еще тут вопросик: а как можно отезать не нужный кусок файла? Т.е. я сместил чатсь чисел вперед, а последних там быть не должно. Может есть какой-то символ как в строках похожий на '\0'?
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Hikolay, Да.
позиционируетесь... SetEndOfFile((HANDLE)_get_osf_handle(fileno(f))); -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Hikolay |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Благодарю, буду пробовать
Добавлено через 1 минуту и 58 секунд А если без WinAPI функций можно как-нибудь сделать? |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Hikolay, Нет. Либо создать новый файл в который поместить только нужные числа.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Hikolay |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Понял. Спасибо за помощь.
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Hikolay, Если вопрос решен, отметьте тему закрытой.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Hikolay |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Почти компилятор ругается, что не знает _get_osf_handle. Чего-то описание этой функции найти не могу? И если можно примерчик сделать простенький?
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Hikolay, Простите, ошибся. Функция зовется _get_osfhandle()
Почитать про нее можно тут: http://msdn.microsoft.com/en-us/library/ks2530z6.aspx -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Hikolay |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Благодарю, все решил
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |