Вернуться в начало файла
Как вернуться в начало программы.
Как сделать так, чтобы при наступления какого-либо условия программа прерывалась и начаналась.
Как вернуться в начало программы?
Собственно несколько дней назад начал изучать язык С++,добрался до темы switch,в общем и целом.
Как вернуться в начало цикла while?
У меня в коде такая структура while ( game == 1) //code// level = 2 while(game == 2 ).
Как вернуться в начало?
как мне сделать, что бы после одного перевода можно было дальше писать месяца? namespace.
Сообщение было отмечено как решение
Решение
Вернуться в начало программы
Что то я совсем запутался и никак немогу в указанном месте перейти в точку входа программы using.
Как вернуться в начало цикла?
Здравствуйте, пишу программу, которая по нажатию кнопок от 1 до 5 будет выводить определенный.
Как вернуться в начало условия if?
Здравствуйте,уважаемые. #!/usr/bin/python3 # -*- coding:utf-8 -*- io = input(‘Въезд(i) или.
Как вернуться в начало цикла
Есть ли команда которая возвращает в начало цикла? К примеру есть цикл do while в нем условие if.
Очистить окно и вернуться в начало
Народ помогите плиз, как сделать так, чтобы окно с вычислениями очистилось и курсор вернулся в.
Как вернуться в начало программы?
Здравствуйте, подскажите пожалуйста можно ли без использования цикла и метки вернуться к началу.
Return StreamReader to Beginning
I’m reading a file in line-by-line and I want to be able to restart the read by calling a method Rewind() .
How can I manipulate my System.IO.StreamReader and/or its underlying System.IO.FileStream to start over with reading the file?
I got the clever idea to use FileStream.Seek(long, SeekOffset) to move around the file, but it has no effect the enclosing System.IO.StreamReader . I could Close() and reassign both the stream and the reader referecnes, but I’m hoping there’s a better way.
8 Answers 8
You need to seek on the stream, like you did, then call DiscardBufferedData on the StreamReader . Documentation here:
Edit: Adding code example:
I use this method:
Amy’s answer will work on some files but depending on the underlying stream’s encoding, you may get unexpected results.
For example if the stream is UTF-8 and has a preamble, then the StreamReader will use this to detect the encoding and then switch off some internal flags that tells it to detect the encoding and check the preamble. If you reset the stream’s position to the beginning, the stream reader will now consume the preamble again but it will include it in the output the second time. There is no public methods to reset this encoding and preamble state so the safest thing to do if you need to "rewind" a stream reader is to seek the underlying stream to the beginning (or set position) as shown and create a new StreamReader , just calling DiscardBufferedData() on the StreamReader will not be sufficient.
file — Как мне вернуть ifstream обратно в начало строки, которая была только что прочитана в C ++?
После того, как я прочитал строку из файла, используя ifstream, есть ли способ вернуть поток обратно в начало строки, которую я только что прочитал, условно?
Поэтому, если someCondition имеет значение true, следующая строка, прочитанная во время следующей итерации цикла while, будет той же строкой, которую я только что прочитал прямо сейчас. В противном случае следующая итерация цикла while будет использовать следующую строку в файле. Если вам нужны дополнительные разъяснения, пожалуйста, не стесняйтесь спрашивать. Заранее спасибо!
ОБНОВЛЕНИЕ № 1
Поэтому я попробовал следующее:
Но он не читает ту же строку снова, когда условие истинно. Целое число является приемлемым типом здесь?
ОБНОВЛЕНИЕ № 2: Решение
В моей логике произошла ошибка. Вот исправленная версия, которая работает так, как я хочу, для любых любопытных:
Вызов TellG () был перенесен в конец, потому что вам нужно искать в начале ранее прочитанной строки. В первый раз я вызвал tellg (), а затем вызвал seekg () до того, как поток даже изменился, поэтому казалось, что ничего не изменилось (потому что это действительно не изменилось). Спасибо всем за ваш вклад.
Решение
Нет прямого способа сказать «вернуться к началу последней строки». Тем не менее, вы можете вернуться в положение, которое вы сохранили, используя std::istream::tellg() , То есть перед прочтением строки вы бы использовали tellg() а потом seekg() чтобы вернуться на позицию.
Однако частое обращение к функциям поиска довольно дорого, т. Е. Я бы посмотрел на снятие требования о повторном чтении строк.
Русские Блоги
C Language rewind () Функция: повторно -точечно указать указатель файла на начало файла
Файл заголовка: #include <stdio.h>
Функция rewind () используется для повторного точки указателя файла на начало файла. В то же время ошибки и оценки EOF, связанные с потоком файла, эквивалентны вызову fseek (поток, 0, seek_set). Прототип выглядит следующим образом:
void rewind(FILE * stream);
[Параметр] Поток — это указатель, чтобы открыть файл.
Примечание. Точнее, указатель здесь не является потоком указателя файла, а указатель позиции внутри файла. По мере того, как указатель позиции считывания и записи файла файла (указывая на текущие байты чтения и записи). Указатель файла относится ко всему файлу.
Файл указателя файла *Поток содержит указатель считывания по позиции чтения -char *_nextc, который указывает на позицию следующего файла чтения и записи. Структура заключается в следующем:
Всякий раз, когда прочитал и пишут, указатель автоматически указывает на следующую позицию чтения и написания. Когда файл просто открыт или создан, указатель указывает на начало файла. Вы можете использовать функцию ftell () для получения указателя текущего положения, или вы можете использовать функцию rewind ()/fseek (), чтобы изменить указатель позиции, чтобы указать его на положение, которое необходимо прочитать и записать.
[Пример] После прочтения данных файла вернитесь к началу, чтобы прочитать еще раз.
Сначала создайте файл, чтобы написать некоторые данные, а затем используйте функцию Feeek, чтобы найти указатель файла, чтобы прочитать данные один за другим в начале файла. Я нашел первый символ A_STRING.
Для другого примера отобразите содержимое одного файла на экране и скопируйте его в другой файл одновременно.