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

Присваивание объекта класса ofstream - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как пользоваться с scanf, и чем отличается от cout http://www.cyberforum.ru/cpp-beginners/thread1114073.html
Знающие, подскажите как пользоваться с scanf, и чем отличается от cout. И чем лучше всего пользоваться.
C++ Расположить первые N натуральных чисел так, чтобы между любыми двумя из расположенных не было их среднего арифметического #include<iostream> #include<vector> using namespace std; void func (vector<int> vec, int p) { int i; i = 0; stop1:while (i<p) { http://www.cyberforum.ru/cpp-beginners/thread1114044.html
Как реализовать наследование классов C++
Здравствуйте, уважаемые форумчане. Помогите с решением проблемной ситуации, связанной скорее всего с аргументами в коде. Я определяю дочерний класс Diagonalsandrectangle, но при выполнении метода...
В строке удалить все заданные группы букв C++
Добрый Вечер! Помогите пожалуйста! В строке удалить все заданные группы букв.
C++ Напишите функцию, считывающую значение из первого узла списка и удаляющую его http://www.cyberforum.ru/cpp-beginners/thread1114022.html
1) Напишите функцию, считывающую значение из первого узла списка и удаляющую его. 2) Напишите функцию, удаляющую весь список. Помогите с этими задачами. И вообще можете объяснить или скинуть...
C++ Сравнения строк по индексацией Народ как ето сравнения строк по индексацией ? подробнее

Показать сообщение отдельно
DrOffset
7321 / 4421 / 1001
Регистрация: 30.01.2014
Сообщений: 7,259
08.03.2014, 18:35
Цитата Сообщение от Aндерсон_256 Посмотреть сообщение
Конструктор Store должен указывать объект ifstream (вероятнее всего,это опечатка в книге, должно быть ofstream), а
перегруженная функция operator () (const string &) должна указывать строку,
подлежащую записи.
Ты не правильно понял задание. Имелось в виду вот это:
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
class Store
{
public:
    Store(char const * filename)
        : of(filename, std::ios::binary)
    {}
 
    void operator()(std::string const & str)
    {
        std::size_t len = str.length();
 
        of.write((char *)&len, sizeof(std::size_t)); // сохранить длину
        of.write(str.data(), len); // сохранить символы
    }
 
private:
    std::ofstream of;
};
 
int main()
{
    Store s("test.bin");
 
    s("test string");
}
Добавлено через 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
class Store
{
public:
    Store(std::ofstream & file)
        : of(file)
    {}
 
    void operator()(std::string const & str)
    {
        std::size_t len = str.length();
 
        of.write((char *)&len, sizeof(std::size_t)); // сохранить длину
        of.write(str.data(), len); // сохранить символы
    }
 
private:
    std::ofstream & of;
};
 
int main()
{
//....
    std::ofstream fout("strings.dat", ios_base::out | ios_base::binary); 
    std::for_each (vostr.begin (), vostr.end(), Store(fout)) ; 
    fout.close() ; 
//....
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru