Группа SE (Кринкин М) — различия между версиями
Материал из SEWiki
Krinkin.m (обсуждение | вклад) (→Ссылки) |
Krinkin.m (обсуждение | вклад) (→Обертка над FILE) |
||
| Строка 13: | Строка 13: | ||
Требуется используя cstdio написать класс/структуру file. file должен позволять узнать статус потока ввода/вывода (ошибка, конец файла и т. д.), а также содержать набор методов для ввода/вывода строк и чисел. Сигнатуры методов остаются на ваше усмотрение, для примера, это может выглядеть так: | Требуется используя cstdio написать класс/структуру file. file должен позволять узнать статус потока ввода/вывода (ошибка, конец файла и т. д.), а также содержать набор методов для ввода/вывода строк и чисел. Сигнатуры методов остаются на ваше усмотрение, для примера, это может выглядеть так: | ||
| − | + | #ifndef __FILE_H__ | |
| − | #ifndef __FILE_H__ | + | #define __FILE_H__ |
| − | #define __FILE_H__ | + | #include <string> |
| − | + | #include <cstdio> | |
| − | #include <string> | + | class file { |
| − | #include <cstdio> | + | public: |
| − | + | enum open_mode { Read, Write }; | |
| − | class file { | + | file(); |
| − | public: | + | 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__*/ | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | }; | + | |
| − | + | ||
| − | #endif /*__FILE_H__*/ | + | |
| − | + | ||
Версия 15:35, 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__*/