Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Diktopfull
0 / 0 / 0
Регистрация: 26.12.2015
Сообщений: 10
#1

Перемещение курсора в файле - C++

28.12.2015, 00:04. Просмотров 1692. Ответов 6
Метки нет (Все метки)

Здравствуйте! Пишу программу, где работаю с файлом с помощью потока, и понадобилось переместить курсор в начало строки, т.к. getline при прочтении перемещает курсор в конец строки.

Добавлено через 6 минут
Гуглить пробовал, не нашёл
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2015, 00:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перемещение курсора в файле (C++):

перемещение курсора в файле - C++
как мне после первого цикла вернуть курсор в начала файла out? fseek ругает то, что первый элемент другого типа + без понятия количество...

Построчное перемещение курсора в текстовом файле - C++
Кусочек кода, см. комментарии switch(flag) { case'1': { f=fopen(value, "r"); //Открываем необходимый файл if...

Перемещение курсора - C++
Мне нужно сделать что-то типа интерфейса на консоли.Как задавать координаты курсора на консоли в С++?(в Паскале аналог gotoxy()). ...

Перемещение курсора - C++
Подскажите как передвинуть курсор в любую точку экрана по координатам x и y. Или каким нибуд другим способом?

Перемещение курсора в консоли - C++
Помогите реализовать новичку перемещение курсора в консоли.Т.е. есть меню например Создать базу Редактировать Удалить И нужно...

Перемещение позиции курсора в консоли - C++
Приветы форумчанам, вопрос такой. Нужно переместить позицию курсора на произвольную позицию в консольном приложении. Есть ли такая функция...

6
cyber-satyr
393 / 164 / 28
Регистрация: 10.12.2015
Сообщений: 717
28.12.2015, 00:11 #2
Установить позицию можно относительно чего-либо. Например, относительно конца, начала или текущей позиции в файле. Но не "в начало строки" и т.д. http://www.cplusplus.com/reference/istream/istream/seekg/
1
Diktopfull
0 / 0 / 0
Регистрация: 26.12.2015
Сообщений: 10
28.12.2015, 00:14  [ТС] #3
Извините, не совсем уверен. А getline, когда строку прочитает, курсор устанавливает в её конец или в начало следующей строки?
0
cyber-satyr
393 / 164 / 28
Регистрация: 10.12.2015
Сообщений: 717
28.12.2015, 00:23 #4
Всегда на следующий байт после последнего прочитанного. Если с учетеом кодировки то немного сложнее. Символы могут быть как в 1 байт, так и в 2 и более.
1
Diktopfull
0 / 0 / 0
Регистрация: 26.12.2015
Сообщений: 10
28.12.2015, 00:36  [ТС] #5
У меня проблема в том, что я читаю с файла и ищу совпадение с номером зачётки. Если нашёл, то можно изменить данные, которые написаны в этой строке, но дело в том, что getline на следующую строку перекидывает, и я не могу вернуться обратно.
0
nord_v
228 / 177 / 69
Регистрация: 22.08.2013
Сообщений: 724
28.12.2015, 01:34 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Diktopfull Посмотреть сообщение
А getline, когда строку прочитает, курсор устанавливает в её конец или в начало следующей строки?
В начало следующей.
Цитата Сообщение от Diktopfull Посмотреть сообщение
понадобилось переместить курсор в начало строки, т.к. getline при прочтении перемещает курсор в конец строки.
Если в начало уже прочитанной, то, перед чтением getline(), запомни позицию курсора через tellg(). После чтения, сделай возврат в эту позицию через seekg(). Для правильности таких перемещений курсора, файл нужно открывать в бинарном режиме.

Добавлено через 3 минуты
Цитата Сообщение от Diktopfull Посмотреть сообщение
Если нашёл, то можно изменить данные, которые написаны в этой строке
Если в текстовом файле изменить, то не получится.
1
cyber-satyr
393 / 164 / 28
Регистрация: 10.12.2015
Сообщений: 717
28.12.2015, 01:39 #7
Цитата Сообщение от Diktopfull Посмотреть сообщение
У меня проблема в том, что я читаю с файла и ищу совпадение с номером зачётки. Если нашёл, то можно изменить данные, которые написаны в этой строке, но дело в том, что getline на следующую строку перекидывает, и я не могу вернуться обратно.
"Изменить данные" это значит разбить задачу на подзадачи.
1. Прочитать файл в буффер.
2. Обработать буффер.
3. Записать буффер в файл.
0
28.12.2015, 01:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2015, 01:39
Привет! Вот еще темы с ответами:

Перемещение текстового курсора вверх (анти endl;) - C++
Есть ли опрератор,который работает противоположно endl;?Тобиш мне нужен пробел не в низ,а вверх.

Перемещение курсора мыши на заданные координаты и клик - C++
Добрый день. Подскажите, пожалуйста, как можно реализовать сабж. Гугление выдает некоторые варианты, но ни один из примеров не...

Позиция курсора в файле - C++
Подскажите, пожалуйста, как сделать, чтобы в файле отыскивалась нужная (по содержанию) строка, модифицировалась и записывалась обратно: в...

Как сохранить текущее положение курсора в файле? - C++
как сохранить текущее положение курсора в файле , а затем в дальнейшем поставить курсор на это место??


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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