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

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

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

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

13.03.2012, 15:23. Просмотров 2633. Ответов 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;
}
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); потом к...

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


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

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

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