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

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

Восстановить пароль Регистрация
 
Diktopfull
0 / 0 / 0
Регистрация: 26.12.2015
Сообщений: 8
28.12.2015, 00:04     Перемещение курсора в файле #1
Здравствуйте! Пишу программу, где работаю с файлом с помощью потока, и понадобилось переместить курсор в начало строки, т.к. getline при прочтении перемещает курсор в конец строки.

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

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

Добавлено через 3 минуты
Цитата Сообщение от Diktopfull Посмотреть сообщение
Если нашёл, то можно изменить данные, которые написаны в этой строке
Если в текстовом файле изменить, то не получится.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2015, 01:39     Перемещение курсора в файле
Еще ссылки по теме:

C++ Перемещение курсора мыши на заданные координаты и клик
Перемещение курсора C++
Перемещение текстового курсора вверх (анти endl;) C++

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

Или воспользуйтесь поиском по форуму:
cyber-satyr
Заблокирован
28.12.2015, 01:39     Перемещение курсора в файле #7
Цитата Сообщение от Diktopfull Посмотреть сообщение
У меня проблема в том, что я читаю с файла и ищу совпадение с номером зачётки. Если нашёл, то можно изменить данные, которые написаны в этой строке, но дело в том, что getline на следующую строку перекидывает, и я не могу вернуться обратно.
"Изменить данные" это значит разбить задачу на подзадачи.
1. Прочитать файл в буффер.
2. Обработать буффер.
3. Записать буффер в файл.
Yandex
Объявления
28.12.2015, 01:39     Перемещение курсора в файле
Ответ Создать тему
Опции темы

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