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

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

Войти
Регистрация
Восстановить пароль
 
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

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

14.04.2013, 16:57. Просмотров 662. Ответов 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
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(). Как же его инициализировать????
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 16:57     Как инициализировать дескриптор для записи и чтения файла
Посмотрите здесь:

Открытие файла для чтения/записи - C++
Помогите реализовать открытие файла под компилятор g++ или DevC++ вечно ругается на std.. using namespace std; не помогает. как...

Можно ли открыть поток для чтения и записи файла одновременно? - C++
Можно ли открыть поток для чтения и записи одновременно? Этот код не работает: wchar_t temp; wstring wchars; ...

Как открыть файл одновременно для чтения и для записи? - C++
Делаю вот так, но ничего не получается.:( std::fstream inOutCredit(&quot;credit.dat&quot;, std::ios::ate | std::ios::binary); if...

Как создать один файл для чтения и записи одновременно? - C++
Пробовал перезапись, но содержимое файла терялось while (file1.hasNext()) { file2.write(file.nextInt() + &quot; &quot;); ...

Как передать файл в функцию для записи/чтения (разные функции) - C++
Собственно сабж. Во первых есть вот такой блок в main: ofstream f1(&quot;F1.txt&quot;); cout&lt;&lt;&quot;Введите элементы в файл 1&quot;&lt;&lt;endl; for (i=0;...

Как сбросить поток для чтения файла с начала? - C++
Добрый вечер. Создали поток, связали с ним файл (текстовый). Начинаем чтение файла, читаем, читаем, пришли к его концу. Как теперь...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.04.2013, 17:11     Как инициализировать дескриптор для записи и чтения файла #2
Цитата Сообщение от ninja2 Посмотреть сообщение
Ошибка в том, что я немогу правильно синициализировать ifstream r
ошибка в том что в конструкторе создаются локальные объекты потоков(строки 36 и 42) с такими же именами как и объектов-членов класса
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
Каратель
Эксперт С++
6553 / 3973 / 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);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2013, 17:25     Как инициализировать дескриптор для записи и чтения файла
Еще ссылки по теме:

как получить дескриптор файла, открытый функцией fopen - C++
как получить дескриптор файла, открытый функцией fopen

Напишите функции записи данных в файл, чтения данных из файла - C++
Файл dаte.in содержит четырех значное число на каждой строке. Напишите функции записи данных в файл, чтения данных из файла. Напишите...

Как поток чтения (или записи) запихнуть в класс? - C++
Здравствуйте!!! Ребят, подскажите пожалуйста, собственно, как запихнуть в класс поток ifstream? Че-то я озадачен оказался *-) Без...

Как открыть два файла для записи? - C++
Здравствуйте, есть следующий код #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main() { int...

Открытие бинарного файла для чтения - C++
MS VS 2010 Есть функция, ей передаётся имя бинарного файла для чтения: float detect(string name) { int t; ofstream...

Функция для чтения из файла в матрицу - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;fstream&gt; using namespace std; void setvector(vector&lt;vector&lt;int&gt; &gt; matrix,...


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

Или воспользуйтесь поиском по форуму:
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     Как инициализировать дескриптор для записи и чтения файла
Ответ Создать тему
Опции темы

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