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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Un.Rewa
0 / 0 / 0
Регистрация: 28.09.2009
Сообщений: 13
#1

Прыжки в файле - C++

29.09.2009, 19:28. Просмотров 1670. Ответов 11
Метки нет (Все метки)

Помогите кто нибуть в таком Надо зделать програму которая будет считывать с файла но с Х строчки (например с 4 и до конца )
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2009, 19:28     Прыжки в файле
Посмотрите здесь:

Почему тип "bool" работает в файле с расширением .cpp и не работает в файле с расширением .c? - C++
Объясните, пожалуйста, почему тип "bool" в одной и той же программе работает в файле с расширением .cpp и не работает в файле с...

Прыжки - C++ Builder
Здравствуйте. Задача сделать следующее: пака юзер держит клавишу – изображение прыгает, когда отпускает – изображение останавливается, но...

Прыжки в asm - Assembler
всем привет! data segment seg: dw 5 dup 0001h,0002h,0003h,0001h,0002h ends stack segment dw 128 dup(0) ends

Прыжки колобков - Unity, Unity3D
У меня есть колобок, который передвигается так: void FixedUpdate () { grounded = Physics2D.OverlapCircle (groundCheck.position,...

Прыжки температуры 6700К - Процессоры
Стоит процессор Intel core i7 6700K 4.0 ГГц. Обнаружил такую вещь, что при открытии браузера, новых вкладок или программ появляются скачки...

Перемещение и прыжки объекта по экрану - C# WPF
В общем... пока задача до горя простая -- заставить объект "бегать" внизу экрана с прыжками. Сначала думал просто повесить на...

Расчёт дипломов на стену , прыжки и тд. - Pascal ABC
Ребят , я не фонтан в программирование , но азы малые знаю . Возраст у меня мал , но пытаюсь решать задачки , нужна помощь в их решении и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
R0mm
Псевдо программист
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
29.09.2009, 19:59     Прыжки в файле #2
C++
1
while(i++!=4) cin.getline();
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
29.09.2009, 20:04     Прыжки в файле #3
это для двоичных файлов
Для произвольного перемещения внутри файла служит функция fseek.
int fseek(FILE *F, long int offset, int origin);
Функция устанавливает указатель текущей позиции файла F, в соответствии
со значениями начала отсчета origin и смешения offset. Параметр offset равен
количеству байтов, на которые будет смешен указатель файла относительно
начала отсчета, заданного параметром origin. В качестве значения для параметра
origin должен быть взят одно из следующих значений, определенных в заголовке
stdio.h.
· SEEK_SET – отсчет смещения offset вести с начала файла;
· SEEK_CUR – отсчет смещения offset вести с текущей позиции файла;
· SEEK_END – отсчет смещения offset вести с конца файла.
Функция возвращает нулевое значение при успешном выполнении операции,
ненулевое – при возникновении сбоя при выполнении смещения.
Функция fseek фактически реализует прямой доступ к любому значению в
файле. Необходимо только знать месторасположение (номер байта) значения в
файле.
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
29.09.2009, 22:07     Прыжки в файле #4
это для двоичных файлов
Почему для двоичных ?
Это и с текстовыми работает.
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
29.09.2009, 22:16     Прыжки в файле #5
если длина строки за рание не известна,то(надо учесть что в каждой строке в конце будет два символа новой строки)
C++
1
2
3
4
5
6
7
8
9
10
...
long counter=0;
char ch,pv;//pv-pred vvod
while(!feof(указ файла)){
pv='что то'
ch=getc(ук файла);
if(ch=='\n'&&pv=='\n')
continue;
else
counter++;//подсчет символов в строке
ну а потом
fseek(ук файла,counter,SEEK_SET);//смещение на нужную строку
Суть такая,только немного надо доработать
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
29.09.2009, 22:33     Прыжки в файле #6
надо учесть что в каждой строке в конце будет два символа новой строки
Чего это два ?
Там в норме должно быть "\r\n"
Но может быть и один "\n" если файл из UNIX например.
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
29.09.2009, 23:14     Прыжки в файле #7
ну тогда так:
while(!feof(ук файла)){
..
if(ch!='\n')
counter++;
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
29.09.2009, 23:21     Прыжки в файле #8
2lavan: можно просто fgets() использовать
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
30.09.2009, 05:20     Прыжки в файле #9
Цитата Сообщение от odip Посмотреть сообщение
Почему для двоичных ?
Это и с текстовыми работает.
это для из литературы почерпнул, а там написанно для двоичных.
я сам не пробовал, пока тока другим советую.
но разницы действительно быть не должно.
в конце концов какая разница между файлом открытым как двоичный и без оного флага? я предпологаю что при обычном чтении файла нельзя отловить символоы перехода на новую строку и возвратат каретки. так это?
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
30.09.2009, 08:23     Прыжки в файле #10
я предпологаю что при обычном чтении файла нельзя отловить символоы перехода на новую строку и возвратат каретки. так это?
Вроде это в любой документации написано.
При открытии файла в текстовом режиме (которые кстати есть только в Windows) при чтении символы '\r' '\n' заменяются на один символ '\n'.
Поэтому при использовании fseek() в текстовом режиме нужно понимать что делаешь.
Потому что реально размер считанной строки будет например 99 байт, а позиция в файле сдвинется на 100 байт (+ символ '\r' если он там был).
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
30.09.2009, 08:28     Прыжки в файле #11
Цитата Сообщение от odip Посмотреть сообщение
Вроде это в любой документации написано.
в подсознании отложилось, а я принял за свои догадки. пасиб
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2009, 09:35     Прыжки в файле
Еще ссылки по теме:

Как организовать прыжки персонажа - XNA
Как перемещать героя вправо, влево, вверх, вниз - я знаю. А как сделать, чтобы он прыгал? То есть поднимался на определенную высоту и...

логическая головоломка про прыжки в высоту - Prolog
Написать программу на языке Prolog, реализующую логическую головоломку. Три девушки упражнялись, прыгая в высоту перед зачетом по...

Почему в структуре кода наблюдаются прыжки то вверх, то вниз? - Assembler
Есть к примеру такая программка (эксплоит), код привел ниже. Вопрос заключается в следующем: почему в начале программы выполняем jmp...

Создать свой компонент(кнопку) которая при наведении на него указателя мыши совершает прыжки верх и вниз - Delphi
Кнопка должна не бегать а прыгать верх вниз(когда ты навел курсор на нее, а после того как ты курсор убрал она должна встать в исходное...

"Прыжки" в нагрузке графического процессора - Видеокарты
Здарова ребята, столкнулся такой бедой с графического процессора. Буквально вчера играл GTA 5 на 60 фпс, с средними настройками. Как захожу...


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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
30.09.2009, 09:35     Прыжки в файле #12
Цитата Сообщение от odip Посмотреть сообщение
можно просто fgets() использовать
вот и я бы так сделал:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
...
FILE *f;
char buf[BUFSIZ];
int missing = 4;
...
while ( fgets(buf, BUFSIZ, f) ){
    if ( missing > 0 ){
        missing--;
        continue;
    }
    printf("%s", buf);
    ...
}
Yandex
Объявления
30.09.2009, 09:35     Прыжки в файле
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru