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

Класс содержащий объект типа ofstream - не компилится! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Копирование одного массива в другой http://www.cyberforum.ru/cpp-beginners/thread629940.html
Всем добрый день. Насколько мне известно использование имени массива без индекса образует указатель на первый элемент массива. В программе я кладу в 1 указатель адрес, который лежит в другом указателе. Но получается ошибка. Почему? int first = {0,1,2,3,4,5,6,7,8,9}; int second; second = first // ошибка
C++ Задача по теме карта (map) Условие: Дан файл содержащий в каждой строке фамилию отца и имена детей. Занесите все данные в карту где фамилия является ключом Выведите имена всех детей в отдельный файл через пробел. #include <iostream> #include <fstream> #include <vector> #include <string> #include <map> http://www.cyberforum.ru/cpp-beginners/thread629938.html
C++ Русская справка для VS2010
Справка на английском что делать ? VS2010 Что делать, мне русская нужна. :(
Ввод целых чисел C++
Пользователь вводит целое число, но если введёт символ - программа вылетает. Что можно сделать, чтобы избавиться от данной проблемы? #include "stdafx.h" #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Rus"); int number ;
C++ Функция main с аргументами http://www.cyberforum.ru/cpp-beginners/thread629895.html
Приветствую, подскажите где именно указывать параметры аргументов(int argc, char **argv), если использовать следующий тип записи int main(int argc, char **argv) { return 0; }
C++ Совместное использование указателей и ссылок int *ptr; int &ref = *ptr; ref = 1; Вот и весь вопрос. Ничего плохого в этом нет? подробнее

Показать сообщение отдельно
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
29.07.2012, 09:57     Класс содержащий объект типа ofstream - не компилится!
Цитата Сообщение от Alberto_Timakov Посмотреть сообщение
может есть случаи, положим исключительные, когда прям надо чтобы поле было типа fstream?
Пишем значение переменной age в файл
затем выводим

для каждого объекта Monstr свой файл
( конечно можно и в один файл
записи добавлять )

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
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <fstream>
 
    class Monstr
    {
        private:
 
           int age;
           char *fname;
           std::ofstream out;
           std::ifstream in;
 
    private:
 
        Monstr& operator=( const Monstr& src );
        Monstr( const Monstr& src );
 
    public:
 
         void 
               writeFile() 
           {
                out.open ( fname );
                 if ( ! out )
                 {
                     std::cerr << "Error in opening file for writing.";
                       exit ( -1 );
                 }
            
               out << age << std::endl;
               out.close();
           }
 
          void 
               readFile()
           {
                 in.open ( fname );
                 if ( ! in )
                 {
                     std::cerr << "Error in opening file for reading.";
                       exit ( -1 );
                 }
               int val = 0;
                        
                   in >> val ;
                   std::cout << val << std::endl; 
                   in.close();
           }
 
        public:
 
            Monstr( const char *fname_ = "C:\\file1.txt" , int age_ = 23 ) :
              age ( age_)
            {
                fname = new char [ strlen ( fname_) + 1 ];
                strcpy( fname, fname_);
            }
 
            ~Monstr()
            {
               delete[] fname;
            }    
 
    };
 
int main(void)
{
   Monstr obj ( "C:\\file1.txt" );
   Monstr obj2 ( "C:\\file2.txt" , 53 );
 
   obj.writeFile();
   obj.readFile();
 
   obj2.writeFile();
   obj2.readFile();
 
    system("pause");
    return 0;
}
Вывод в консоль :
Код
23
53
В файлах :

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