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

Как инициализировать дескриптор для записи и чтения файла - C++

Восстановить пароль Регистрация
 
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.04.2013, 16:57     Как инициализировать дескриптор для записи и чтения файла #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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
using std::cerr;
using std::ios;
#include <fstream>
using std::ifstream;
using std::ofstream;
#include <cstdlib>
using std::exit;
#include <string>
using std::string;
 
class File
{
    ifstream r;
    ofstream w;
public:
    File(char* f, char m)
    {
        if(m=='r')
        {
            ifstream r(f,ios::in);
            if(!r)
            {
                cerr <<"don't open file"<<endl;exit(1);
            }
            /*string s="";
            string result="";
            while(getline(r,s))
            {
                cout <<"mu tyt"<<endl;
                result+=s;
            }
            cout <<result<<endl;exit(1);//tyt rabotaet normal6no */
        }
        else if(m=='w')
        {
            ofstream w(f,ios::out);
            if(!w)
            {
                cerr <<"don't open file"<<endl;exit(1);
            }
        }
    }
    
    string read()
    {
        string s="";
        string result="";
        while(getline(r,s))
        {
            cout <<"mu tyt"<<endl;//mu cyda daje ne popadaem
            result+=s;
        }
        cout <<result<<endl;//nichego ne vuvodit.
        return result;
    }
};
 
int main()
{
    char f[]="ex14_4.cpp";
    File fl(f,'r');
    fl.read();
    
    return 0;
}
Ошибка в том, что я немогу правильно синициализировать ifstream r. Там видимо ничего нету поэтому он и не читает в функции read(). Как же его инициализировать????
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.04.2013, 17:11     Как инициализировать дескриптор для записи и чтения файла #2
Цитата Сообщение от ninja2 Посмотреть сообщение
Ошибка в том, что я немогу правильно синициализировать ifstream r
ошибка в том что в конструкторе создаются локальные объекты потоков(строки 36 и 42) с такими же именами как и объектов-членов класса
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.04.2013, 17:16  [ТС]     Как инициализировать дескриптор для записи и чтения файла #3
Цитата Сообщение от Jupiter Посмотреть сообщение
ошибка в том что в конструкторе создаются локальные объекты потоков с такими же имена как и объектов-членов класса
Да ясно раз из read() ничего нету, а как же мне глобальные инициализировать? или мне просто имя файла хранить, а затем если надо будет открывать поток? Можно и так, но я хо, чтобы в классе был уже открыт поток.

Добавлено через 1 минуту
через new тоже не получается если в классе хранить указатели от типо так r=new("имя файла", ios::in);

Добавлено через 24 секунды
Да по разному пробовал ничо не выходит.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.04.2013, 17:19     Как инициализировать дескриптор для записи и чтения файла #4
Цитата Сообщение от ninja2 Посмотреть сообщение
а как же мне глобальные инициализировать?
какие глобальные? что за ... ты пишешь?
строка 36(пардон 26)
C++
1
r.open(f);
строка 42 аналогично
C++
1
w.open(f);
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.04.2013, 17:25  [ТС]     Как инициализировать дескриптор для записи и чтения файла #5
Заработало как не странно.
Я так понял ifstream и ofstream это классы.

Добавлено через 2 минуты
я просто глобально иммел в веду не локально в конструкторе а как бы r и w ну я не сильно просто шарю, так что так. сенк
Yandex
Объявления
14.04.2013, 17:25     Как инициализировать дескриптор для записи и чтения файла
Ответ Создать тему
Опции темы

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