Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > _llseek


Автор: Alexandr87 15.1.2005, 16:05
Чёт я не понял каким образом эта функция позиционирует курсор в файле.
пишу что-то вроде


::_llseek(file,SEEK_END,0);


поидее курсор должен оказать в конце файла. Но блин когда произожу запись, он у меня затирает предыдущий симол. Ктондь может конкретно объяснить принципы позиционирования курсора в файле.

Автор: NiJazz 15.1.2005, 16:08
Попробуй fseek.
Добавлено @ 16:16
Код

#include <stdio.h>

void main()
{
FILE* f = fopen("C:\\1.txt","r");

fseek(f, 11, SEEK_SET); // Переходим на 11 позицию от начала файла (SEEK_SET)
char c;
fscanf(f, "%c", &c);
printf("%c", c);
fclose(f);
}

Автор: NiJazz 15.1.2005, 16:20
Этот код выдаст на экран последний символ в файле:
Код

#include <stdio.h>

void main()
{
FILE* f = fopen("C:\\1.txt","r");

fseek(f, -1, SEEK_END);
char c;
fscanf(f, "%c", &c);
printf("%c", c);
fclose(f);
}

Автор: Alexandr87 15.1.2005, 18:15
Всё всем спасибо промблема решилась.
перепутал 2 и 3 параметры.
Не помню где, но прочитал что именно 2 параметр задает направление а 3 сдвиг. Вот блин а то уже запарился

Автор: NiJazz 15.1.2005, 18:21
Alexandr87
А чем fseek не устраивает?

Автор: Alexandr87 15.1.2005, 18:28
Как я понимаю для его работы необходимо инклюдить stdio.h, лишний кб

Автор: NiJazz 15.1.2005, 18:35
Alexandr87
Ну если только из этих соображений.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)