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

Чтение из файла посредством потоков - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В чем разница http://www.cyberforum.ru/cpp-beginners/thread783333.html
Здравствуйте. Я новичок, как здесь, так и в программировании, только учусь. И ищя литературу прочитывал кучу информации, наткнулся на этот форум, и на один блог, где советовали книги по С++. Но нельзя не заметить, что microsoft выпустила новый Microsoft Visual Studio, теперь уже 2012 года. В чем его преимущество откровенно не знаю, но меня интересует больше вопрос про книги автора Айвор Хортон...
C++ Эквивалент библиотеки tchar.h в Borland 3.1 Какая библиотека эквивалентна библиотеке tchar.h в Borland 3.1? http://www.cyberforum.ru/cpp-beginners/thread783330.html
Найти файл на диске C++
Здравствуйте!!! Учусь работать с файлами на Visual C++. Есть такое задание: найти на диске все файлы, в имени которых буква c встречается более 3 раз. С горем пополам написал программку, но она выводит все файлы на диске. А как сделать, чтобы она выводила нужные файлы? #include "stdafx.h" #include <windows.h> #include <iostream> using namespace std; void ff(const TCHAR *curDir) {
Ввод/вывод с использование русского языка C++
Мне нужно ввести с клавиатуры строку на русском языке (например:"Я живу в России") и вывести её также. Как это сделать? Я сколько не пытался - не получается. Читал на форумах, но так и не нашел решения. Заранее спасибо за помощь.
C++ Цикл в цикле http://www.cyberforum.ru/cpp-beginners/thread783320.html
Написать программу, в которой пользователь вводит по строкам с клавиатуры элементы двумерного массива (пока пользователь не остановит ввод) и вычисляет среднее арифметическое его элементов. Добавлено через 15 минут никто не знает как сделать?(
C++ Построчный числовой ввод данных в массив Доброго времени суток! Пожалуйста, подскажите возможный вариант реализации на c++ следующего алгоритма: - объявляется массив a; - элементы массива вводятся построчно. После перехода на новую строку выводится индекс последнего введенного элемента, после чего начинается ввод данных в новый массив. Может быть введено любое количество элементов (от 0 до 32768). Например (код, увы,... подробнее

Показать сообщение отдельно
Olejan_one
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 106
Завершенные тесты: 2
10.02.2013, 19:01     Чтение из файла посредством потоков
Добрый день!
Такая проблемка:
Реализована иерархия из трёх классов. Так же реализована шаблонная функция записи в файл и чтение из файла.
Проблема в функции чтения из файла в объект класса.
1. Не могу понять как правильно реализовать алгоритм. Точней алгоритм вроде как построил(сомневаюсь в его эффективности и правильности).
2. В алгоритме реализован оператор ввода(>>). Как следует его правильно реализовать что бы этот оператор работал для всех 3-х классов?
Прочитал пару сайтов по этому поводу - вроде как то можно реализовать через метод read объекта класса ifstream.
Что то вроде этого
C++
1
2
ifstream f("first.txt")
f.read((Type) a,sizeof a)//??
В общем я хочу что бы оператор >> писал из файла в любой из трёх возможных классов.
Вот выкладываю функцию записи в файл экземпляров класса и функцию считывания из файла в экземпляры класса. А так же перегрузку оператора <<.
Помогите с методом считывания. За ранее благодарен.
C++
1
2
3
4
5
6
7
template <class Type> void write_f (Type& a)
{//шаблонная функция записи в файл - работает нормально
    ofstream MyCoolFile;
MyCoolFile.open("First.txt");
MyCoolFile<<a;
MyCoolFile.close();
}

C++
1
2
3
4
5
6
7
8
9
10
11
template <class Type> void read_f (Type& a)
 
{//шаблонная функция считывания из файла
       
       ifstream f("first.txt",ios::in);
     
    f>>a;  //как правильно перегрузить оператор >>????
       f.close();
       cout << "\nЧтение из файла закончено.";
     
}

//перегрузка оператора <<
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ostream& operator <<(ostream &out,schooll& m)//реализация опретора вывода в поток(сдвиг влево)
{
    
    schooll* t;
    t=&m;
    out<<t->get_surname()<<endl;
    out<<t->get_name()<<endl;
    out<<t->get_patr()<<endl;
    out<<t->get_data_day()<<":";
    out<<t->get_data_maonh()<<":";
    out<<t->get_data_year()<<endl;
    out<<t->get_adr()<<endl;
    out<<t->get_tell()<<endl;
    out<<t->get_icq()<<endl;
 
 
    return out;
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru