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

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

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

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

13.03.2012, 15:23. Просмотров 2573. Ответов 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++):

Прочитать и переписать из текстового файла в текстовый файл - C++
Ребята, добрый всем день. Помогите, пожалуйста, новичку. У меня имеется файл, его нужно прочитать построчно и переписать этот файл в...

Как правильно прочитать текстовый файл с помощью ReadFile? - C++
Как правильно прочитать текстовый файл с помощью ReadFile и сделать каждую новую строчку переменной?(нужно 4 строчки) Добавлено...

Прочитать текстовый файл и вывести из него только цитаты - C++
Есть задание Написать программу, которая считывает текст из файла и выводит на экран только цитаты. Вот прога: #include &lt;fstream&gt; ...

Прочитать текстовый файл и подсчитать в нем количество слов и символов - C++
Привет всем опытным и начинающим программистам! Помогите, пожалуйста, с задачкой! Вообщем требуется написать программу, которая читает...

Прочитать текстовый файл и поменять в каждой строке местами соседние слова - C++
Привет,помогите пожалуйста,нужно составить программу, которая читает текстовый файл и меняет в каждой строке местами соседние слова... ...

прочитать текстовой файл без заморочек - C++
Люди!! в билдере для чтения текстового файла делал так TStringList *List = new TStringList; List-&gt;LoadFromFile(File_name); потом к...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
13.03.2012, 15:37 #2
Цитата Сообщение от DPS Посмотреть сообщение
возможно ли прочитать текстовый файл еще раз сначала?
seekg
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 15:42 #3
С in.seekg( 0, ios::beg ); все должно работать. Приведи неработающий код с "перемоткой".
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 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
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
13.03.2012, 15:56 #5
C++
1
2
in.clear();
in.seekg(0, ios::beg);
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 15:57 #6
Пробуй так:
in.clear();
in.seekg(0,ios::beg);
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1
13.03.2012, 16:01  [ТС] #7
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
2
in.clear();
in.seekg(0, ios::beg);
Гениально!!! Заработало Вот где это можно было прочитать??? Весь интернет перерыл, перечитал главы про потоки книжках в пяти, но нигде про это сказано не было. Спасибо!!!
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 16:14 #8
http://www.cplusplus.com/reference/iostream/ifstream/
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1
13.03.2012, 16:20  [ТС] #9
Спасибо, буду изучать...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2012, 16:20
Привет! Вот еще темы с ответами:

Дан текстовый файл F. Найти, сколько раз встречается в нем слово S - C++
Просто без выходная ситуация надо решить задачи... Просто умоляю кто нибудь ПАМАГИТЕ!!!!!!!!!!!!:help::help::help: 1)Дан файл F,...

Из текстового файла прочитать четные числа и записать их в другой файл без использования массива (код С++) - C++
Код есть только перед чтением файла нужно его создать, внести 15 чисел и закрыть, через ofstream. #include &lt;iostream&gt; #include...

Создать текстовый файл, состоящий из десятичных чисел без знака - C++
Создать текстовый файл, состоящий из десятичных чисел без знака. Записать в новый файл десятичные числа и их двоичные коды. Переименовать...

Создать текстовый файл. Прочитать его и определить, сколько раз в нём встречается буква «а» - Pascal
Создать текстовый файл. Прочитать его и определить, сколько раз в нём встречается буква «а». вот я написал программу при компиляции все в...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.03.2012, 16:20
Ответ Создать тему
Опции темы

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