Группа SE (Кринкин М) — различия между версиями
Krinkin.m (обсуждение | вклад) (→Ссылки) |
Krinkin.m (обсуждение | вклад) (→Ссылки) |
||
Строка 6: | Строка 6: | ||
[http://www.cplusplus.com/ человеческая документация по C++] | [http://www.cplusplus.com/ человеческая документация по C++] | ||
+ | |||
+ | == Задания == | ||
+ | |||
+ | = Обертка над FILE = | ||
+ | |||
+ | Требуется используя cstdio написать класс/структуру file. file должен позволять узнать статус потока ввода/вывода (ошибка, конец файла и т. д.), а также содержать набор методов для ввода/вывода строк и чисел. Сигнатуры методов остаются на ваше усмотрение, для примера, это может выглядеть так: | ||
+ | |||
+ | <nowiki> | ||
+ | #ifndef __FILE_H__ | ||
+ | #define __FILE_H__ | ||
+ | |||
+ | #include <string> | ||
+ | #include <cstdio> | ||
+ | |||
+ | class file { | ||
+ | public: | ||
+ | enum open_mode { Read, Write }; | ||
+ | file(); | ||
+ | explicit file(std::string const &fname, open_mode mode = Read); | ||
+ | ~file(); | ||
+ | |||
+ | void open(std::string const &fname, open_mode mode = Read); | ||
+ | void close(); | ||
+ | |||
+ | open_mode mode() const; | ||
+ | bool opened() const; | ||
+ | bool eof() const; | ||
+ | bool error() const; | ||
+ | |||
+ | size_t write(char const *buf, size_t size); | ||
+ | size_t write(std::string const &str); | ||
+ | size_t write(char value); | ||
+ | size_t write(long value); | ||
+ | size_t write(unsigned long value); | ||
+ | size_t write(double value); | ||
+ | size_t newline(); | ||
+ | |||
+ | size_t read(char *buf, size_t size); | ||
+ | size_t read(std::string &word); | ||
+ | size_t read(char &c); | ||
+ | size_t read(long &value); | ||
+ | size_t read(unsigned long &value); | ||
+ | size_t read(double &value); | ||
+ | size_t readline(std::string &line); | ||
+ | }; | ||
+ | |||
+ | #endif /*__FILE_H__*/ | ||
+ | </nowiki> |
Версия 15:32, 11 октября 2013
Ссылки
человеческая документация по C++
Задания
Обертка над FILE
Требуется используя cstdio написать класс/структуру file. file должен позволять узнать статус потока ввода/вывода (ошибка, конец файла и т. д.), а также содержать набор методов для ввода/вывода строк и чисел. Сигнатуры методов остаются на ваше усмотрение, для примера, это может выглядеть так:
#ifndef __FILE_H__ #define __FILE_H__ #include <string> #include <cstdio> class file { public: enum open_mode { Read, Write }; file(); explicit file(std::string const &fname, open_mode mode = Read); ~file(); void open(std::string const &fname, open_mode mode = Read); void close(); open_mode mode() const; bool opened() const; bool eof() const; bool error() const; size_t write(char const *buf, size_t size); size_t write(std::string const &str); size_t write(char value); size_t write(long value); size_t write(unsigned long value); size_t write(double value); size_t newline(); size_t read(char *buf, size_t size); size_t read(std::string &word); size_t read(char &c); size_t read(long &value); size_t read(unsigned long &value); size_t read(double &value); size_t readline(std::string &line); }; #endif /*__FILE_H__*/