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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
#1

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

13.03.2012, 15:23. Просмотров 2271. Ответов 8
Метки нет (Все метки)

Добрый день!!! Подскажите пожалуйста, возможно ли прочитать текстовый файл еще раз сначала? Или чтобы начать чтение снова, надо его закрыть и снова открыть???
Допустим имеется такой текстовый файл: 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++ Дан текстовый файл F. Найти, сколько раз встречается в нем слово S
C++ Прочитать текстовый файл и вывести из него только цитаты
Текстовый файл UTF-8 сохранить как текстовый файл ANSI C++
C++ Прочитать файл в обратном порядке т.е. встать в конец файла и прочитать до начальной позиции
C++ прочитать текстовой файл без заморочек
C++ Из текстового файла прочитать четные числа и записать их в другой файл без использования массива (код С++)
Скажите, пожалуйста, возможно ли код сократить еще? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
13.03.2012, 15:37     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #2
Цитата Сообщение от DPS Посмотреть сообщение
возможно ли прочитать текстовый файл еще раз сначала?
seekg
castaway
Эксперт С++
4873 / 3012 / 370
Регистрация: 10.11.2010
Сообщений: 11,063
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 15:42     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #3
С in.seekg( 0, ios::beg ); все должно работать. Приведи неработающий код с "перемоткой".
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
1924 / 1533 / 139
Регистрация: 31.05.2009
Сообщений: 2,896
13.03.2012, 15:56     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #5
C++
1
2
in.clear();
in.seekg(0, ios::beg);
castaway
Эксперт С++
4873 / 3012 / 370
Регистрация: 10.11.2010
Сообщений: 11,063
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 15:57     возможно ли прочитать текстовый файл сначала еще раз без закрытия? #6
Пробуй так:
in.clear();
in.seekg(0,ios::beg);
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
Эксперт С++
4873 / 3012 / 370
Регистрация: 10.11.2010
Сообщений: 11,063
Записей в блоге: 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++ Прочитать текстовый файл и поменять в каждой строке местами соседние слова
Как правильно прочитать текстовый файл с помощью ReadFile? C++
Прочитать текстовый файл и подсчитать в нем количество слов и символов C++
Прочитать и переписать из текстового файла в текстовый файл C++

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

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

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