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

возможно ли прочитать текстовый файл сначала еще раз без закрытия? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
13.03.2012, 15:23     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #1
Добрый день!!! Подскажите пожалуйста, возможно ли прочитать текстовый файл еще раз сначала? Или чтобы начать чтение снова, надо его закрыть и снова открыть???
Допустим имеется такой текстовый файл: 1 2 3 4 5 6 7 8 9 10
Тогда после прочтения всего файла переменная будет содержать значение 10. Пробовал перевести указатель чтения на начало (seekg(0,ios::begin)), указатель устанавливается на ноль, но если я вновь пробую читать сначала, чтения не происходит... Т.е. в переменной t как было, так и остается значение 10(хотя по логике должно быть 1)


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include<iostream>
#include<fstream>               //для потоков
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Rus");    //поддержка русского языка
 
    char namefile[30];  
    
    cout<<"Введите путь к файлу:  ";
 
    cin.getline(namefile,29);
    
    ifstream in(namefile);                              //создаем поток 
 
    if(in.is_open())            //проверка открытия файла
        cout<<"Файлы успешно открыт"<<endl;
    else
    {
        cout<<"Ошибка открытия файла"<<endl;
        return -1;
    }
    
    int t;                      //для хранения переменной
    
    while(!in.eof())
    {
        in>>t;
        cout<<t<<endl;
    }
    cout<<"Чтение окончено\n";
 
    in.close();
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2012, 15:23     возможно ли прочитать текстовый файл сначала еще раз без закрытия?
Посмотрите здесь:

помогите пожалуйста проблема с перегрузкой операторов '-' >> <<, возможно еще с конструктором без параметров наверно проблема C++
C++ Дан текстовый файл F. Найти, сколько раз встречается в нем слово S
C++ Прочитать текстовый файл и вывести из него только цитаты
C++ как можно прочитать файл в обратном порядке т.е. стать в конец файла и прочитать до начальной позиции?
C++ прочитать текстовой файл без заморочек
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
13.03.2012, 15:37     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #2
Цитата Сообщение от DPS Посмотреть сообщение
возможно ли прочитать текстовый файл еще раз сначала?
seekg
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 15:42     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #3
С in.seekg( 0, ios::beg ); все должно работать. Приведи неработающий код с "перемоткой".
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
13.03.2012, 15:49  [ТС]     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #4
Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<iostream>
#include<fstream>               //для потоков
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Rus");    //поддержка русского языка
 
    char namefile[30];  
    
    cout<<"Введите путь к файлу:  ";
 
    cin.getline(namefile,29);
    
    ifstream in(namefile);      //создаем поток 
 
    if(in.is_open())            //проверка открытия файла
        cout<<"Файлы успешно открыт"<<endl;
    else
    {
        cout<<"Ошибка открытия файла"<<endl;
        return -1;
    }
    
    int t;                      //для хранения переменной
    
    while(!in.eof())            //пока не конец файла
    {
        in>>t;
        cout<<t<<endl;          //выводим на экран
    }
    
    in.seekg(0,ios::beg);       //устанавливаем указатель на начало
 
    cout<<"Читаем еще раз:  "<<endl;
 
    while(!in.eof())            //читаем еще раз до конца
    {
        in>>t;
        cout<<t<<endl;          
    }
 
    cout<<"Чтение окончено\n";
 
    in.close();
 
    return 0;
}
В первый раз все прекрасно читает, а вот во второй... Проверял, где стоит указатель после первого чтения функцией tellg(), показывает, что стоит на нулевой позиции...
Миниатюры
возможно ли прочитать текстовый файл сначала еще раз без закрытия?  
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
13.03.2012, 15:56     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #5
C++
1
2
in.clear();
in.seekg(0, ios::beg);
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 15:57     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #6
Пробуй так:
in.clear();
in.seekg(0,ios::beg);
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
13.03.2012, 16:01  [ТС]     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #7
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
2
in.clear();
in.seekg(0, ios::beg);
Гениально!!! Заработало Вот где это можно было прочитать??? Весь интернет перерыл, перечитал главы про потоки книжках в пяти, но нигде про это сказано не было. Спасибо!!!
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 16:14     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #8
http://www.cplusplus.com/reference/iostream/ifstream/
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2012, 16:20     возможно ли прочитать текстовый файл сначала еще раз без закрытия?
Еще ссылки по теме:

C++ Из текстового файла прочитать четные числа и записать их в другой файл без использования массива (код С++)
Создать текстовый файл, состоящий из десятичных чисел без знака C++
C++ Прочитать текстовый файл и поменять в каждой строке местами соседние слова

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

Или воспользуйтесь поиском по форуму:
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
13.03.2012, 16:20  [ТС]     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #9
Спасибо, буду изучать...
Yandex
Объявления
13.03.2012, 16:20     возможно ли прочитать текстовый файл сначала еще раз без закрытия?
Ответ Создать тему
Опции темы

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