Форум программистов, компьютерный форум CyberForum.ru

Почему fseek не переводит указатель - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Claustrofob
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 37
18.06.2011, 21:51     Почему fseek не переводит указатель #1
Помогите барану
от С далек.
Простенькое задание из контрольной по TC++ (3.0) с использованием файлов. Почему процедура fseek() непереводит указатель? ...
...
fseek(f,0,0);
fscanf(f,'%d',x);
...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2011, 21:51     Почему fseek не переводит указатель
Посмотрите здесь:

Почему нельзя объявить указатель на шаблонную структуру? C++
есть указатель на конец файла и он самоинициализируется, но не в месте объявления, а когда учавствует в условии. Почему так? C++
Почему не возвращается значение через указатель из метода класса? C++
Почему не виден указатель? C++
C++ Почему delete не устанавливает автоматически указатель в NULL?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aniskov
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 111
18.06.2011, 22:36     Почему fseek не переводит указатель #2
Я не в курсе как в ТС++, но посмотри как функция используется(обрати внимание на параметры).

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wcecrt4/html/erlrffseek.asp
Claustrofob
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 37
18.06.2011, 23:02  [ТС]     Почему fseek не переводит указатель #3
Да вроде все верно ...
таже инфа и в контекстном хелпе. Всякие тхтешки перекопал ... где нить есть доступное описание работы с файлами. Как то все в загали и о высоких материях ...
после Паскакаля вообще какой-то бред ))
После fseek... ftell возвращает позицию 0
но после fscanf... читает зараза всеравно не ту запись. ?
следующая проверка ftell возвращает позиции как и до использования fseek'a...
Aniskov
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 111
18.06.2011, 23:12     Почему fseek не переводит указатель #4
Так у тебя все правильно работает!!!
Ты задаешь вторым параметром позицию куда перейти, она тебя и переводит к началу.
fseek(file,куда сдвинуть(№ байта),SEEK_SET);
Claustrofob
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 37
18.06.2011, 23:52  [ТС]     Почему fseek не переводит указатель #5
да мне нужно считать первую запись.
а fscanf считывает ту на которую был установлен указатель до fseek'a.
paradise
Сообщений: n/a
19.06.2011, 12:52     Почему fseek не переводит указатель #6
Claustrofob:
1. Как связаны между собой 'от С далек.' и 'по TC++ (3.0)' непонятно...

2. Работа fseek может зависить от того, как ты открыл файл (с какими параметрами и в каком ).

3. Используй SEEK_SET, а не 0. С чего ты взял, что с TC++ (3.0) SEEK_SET имеет значение 0?

4. Приведи код до:
Код
fseek(f,0,0);
fscanf(f,'%d',x);
Aniskov
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 111
19.06.2011, 20:01     Почему fseek не переводит указатель #7
Попробуй использовать rewind(FILE* f).
Эта функция 'перематывает' фаил на начало.
Aniskov
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 111
19.06.2011, 20:13     Почему fseek не переводит указатель #8
А правильно ли ты используешь fscanf.
И что такое х.
Если это не строка (это врятли так как у тебя '%d') и не указатель то надо писать &x.
Да и еще какого содержания фаил, может там не int числа.
Я полностью солидарен с paradise, трудно что-то сказать когда не видешь код, все равно что лечение по телефону ).
Aniskov
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 111
19.06.2011, 20:15     Почему fseek не переводит указатель #9
Сорри, в предыдущем сообщении перед 'то' в 3-ей строке забыл запятую.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2011, 10:36     Почему fseek не переводит указатель
Еще ссылки по теме:

C++ Почему не обнуляется указатель через функцию?
Подскажите почему указатель работает неправильно? C++
Почему плохо возвращать указатель из функции? C++

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

Или воспользуйтесь поиском по форуму:
paradise
Сообщений: n/a
20.06.2011, 10:36     Почему fseek не переводит указатель #10
Aniskov, рыз ты заморачиваешься на правописании, то в первом предложении ты вместо знака вопроса поставил точку

Поддерживаю Aniskov - лечение по телефону - как раз данный случай.
Yandex
Объявления
20.06.2011, 10:36     Почему fseek не переводит указатель
Ответ Создать тему
Опции темы

Текущее время: 07:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru