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

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

Войти
Регистрация
Восстановить пароль
 
SuperProgramer
-30 / 0 / 0
Регистрация: 05.07.2015
Сообщений: 104
#1

Как начать чтение файла сначала после Getline с первой строчки в fstream? - C++

07.07.2015, 18:38. Просмотров 518. Ответов 10
Метки нет (Все метки)

Пишу программу,которая читает строки их текстового файла и передаёт их в поле Edit1 поочерёдно,по нажатию кнопки.Когда строки закончатся,надо начать чтение с первой строки.Как?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//---------------------------------------------------------------------------
fstream fout;
string str;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
fout.open("keys.txt");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(!fout.eof())
{
 getline(fout,str);
Edit1->Text=str.c_str();
}
else
{
//Если строки в файле кончились тут должно быть что-то что начнёт чтение сначала
 }
 }
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2015, 18:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как начать чтение файла сначала после Getline с первой строчки в fstream? (C++):

Если функция, подобная getline, которая может читать очень большие строчки из файла? - C++
Если функция, подобная getline, которая может читать очень большие строчки из файла?

Fstream - чтение из файла - C++
подскажите начинающему программисту как читать файл целиком.. например последовательность чисел

Чтение всего файла fstream - C++
В общем мне казалась задача вполне очевидна и частая считать файл целиком в строку, но почему-то я не нашёл ничего готового (типа...

Getline чтение из файла - C++
#include <iostream> using std::cout; using std::cin; using std::endl; using std::ios; using std::cerr; #include <fstream> ...

Заменить чтение из файла аналогом fstream - C++
char fileName; printf("Enter file name: "); scanf("%255s", fileName); FILE *open = fopen(fileName, "r"); ...

Чтение с текстового файла getline()-ом - C++
Приветствую Всех! У меня возникла проблема с getline() Я должен прочитать из текстового файла строки по порядку в цикле...

10
0x10
2486 / 1661 / 249
Регистрация: 24.11.2012
Сообщений: 4,136
07.07.2015, 18:57 #2
seekg
0
SuperProgramer
-30 / 0 / 0
Регистрация: 05.07.2015
Сообщений: 104
07.07.2015, 19:03  [ТС] #3
Цитата Сообщение от 0x10 Посмотреть сообщение
Пример покажите у меня не вышло
0
0x10
2486 / 1661 / 249
Регистрация: 24.11.2012
Сообщений: 4,136
07.07.2015, 19:04 #4
Цитата Сообщение от SuperProgramer Посмотреть сообщение
Пример покажите у меня не вышло
По ссылке есть пример.
0
SuperProgramer
-30 / 0 / 0
Регистрация: 05.07.2015
Сообщений: 104
07.07.2015, 19:09  [ТС] #5
Цитата Сообщение от 0x10 Посмотреть сообщение
По ссылке есть пример.
Там ifstream а мне надо fstream
0
0x10
2486 / 1661 / 249
Регистрация: 24.11.2012
Сообщений: 4,136
07.07.2015, 19:11 #6
Цитата Сообщение от SuperProgramer Посмотреть сообщение
мне надо fstream
См иерархию классов и список методов: fstream.
0
SuperProgramer
-30 / 0 / 0
Регистрация: 05.07.2015
Сообщений: 104
07.07.2015, 19:15  [ТС] #7
Цитата Сообщение от 0x10 Посмотреть сообщение
См иерархию классов и список методов: fstream.
Там тоже есть seekg но не работает

Добавлено через 1 минуту
Цитата Сообщение от 0x10 Посмотреть сообщение
См иерархию классов и список методов: fstream.
seekg там есть но не работает.Вызываю правильно
0
0x10
2486 / 1661 / 249
Регистрация: 24.11.2012
Сообщений: 4,136
07.07.2015, 19:16 #8
Цитата Сообщение от SuperProgramer Посмотреть сообщение
не работает
Такие формулировки можно смело игнорировать.
Где код, где сообщения об ошибке или симптомы "не работает"? Нужно техническое описание проблемы.
0
SuperProgramer
-30 / 0 / 0
Регистрация: 05.07.2015
Сообщений: 104
07.07.2015, 19:21  [ТС] #9
Цитата Сообщение от 0x10 Посмотреть сообщение
Такие формулировки можно смело игнорировать.
Где код, где сообщения об ошибке или симптомы "не работает"? Нужно техническое описание проблемы.
Сообщений нет но сначала не начинает.В Edit 1 стоит последняя строка,сколько на кнопку ни жми.Сначала читает по строке файл кончается,а сначала не начинает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
 
if (!fout.eof())
{
 getline(fout,str);
 
Edit1->Text=str.c_str();
 }
 else
 {
   fout.seekg (0,ios::beg);
    getline(fout,str);
 
Edit1->Text=str.c_str();
 
 }
   }
0
0x10
2486 / 1661 / 249
Регистрация: 24.11.2012
Сообщений: 4,136
07.07.2015, 19:29 #10
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Перед вызовом seekg нужен вызов fout.clear();
1
SuperProgramer
-30 / 0 / 0
Регистрация: 05.07.2015
Сообщений: 104
07.07.2015, 19:37  [ТС] #11
Цитата Сообщение от 0x10 Посмотреть сообщение
Перед вызовом seekg нужен вызов fout.clear();
Спасибо.Всё работает.
0
07.07.2015, 19:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2015, 19:37
Привет! Вот еще темы с ответами:

Чтение из файла, не используя getline - C++
Вот ВЕСЬ код: #include <iostream> #include <string> #include <fstream> #include <iomanip> #include <Windows.h> using...

Чтение из файла: getline() не работает - C++
У меня такая ситуация: Есть два файла: words1.txt и cities-source.txt. Прилагаются. Берем первую строку из words1 и начинаем...

Чтение файла в массив символов используя fstream - C++
Добрый день. Нужно считать файл в массив символов(vector). Использую fstream.

Как задать путь для файла в fstream? - C++
Как задать путь для хранения файлов, созданныхofstream fout; fout.open("text.txt",ios::app); при помощи:


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

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

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