13 #include "format_types.hpp"
14 #include "os_fixes.hpp"
22 extern const int textio_uninitialised;
23 extern const int textio_put_failed;
24 extern const int textio_format_error;
25 extern const int textio_get_failed;
26 extern const int textio_open_failed;
59 native_mode = msdos_mode
61 native_mode = unix_mode
65 friend std::string to_string(newline_t);
67 friend std::string to_string(
int);
77 friend std::string to_string(open_t);
79 friend std::string to_string(
int);
83 typedef void (*manipulator_function)(
otext&);
98 bool initialised(
void)
const;
112 bool error(
void)
const;
113 int error_number(
void)
const;
114 std::string error_string(
void)
const;
115 void set_error(
int error);
116 void clear_error(
void);
119 void set_newline_mode(newline_t newline = native_mode);
120 void set_unix_mode(
void);
121 void set_msdos_mode(
void);
122 void set_macos_mode(
void);
123 void set_native_mode(
void);
124 void set_binary_mode(
void);
125 newline_t newline_mode(
void)
const;
126 bool is_unix_mode(
void)
const;
127 bool is_msdos_mode(
void)
const;
128 bool is_macos_mode(
void)
const;
129 bool is_native_mode(
void)
const;
130 bool is_binary_mode(
void)
const;
133 void set_integer_width(
unsigned width = 0);
134 unsigned integer_width(
void)
const;
135 void set_integer_radix(
unsigned radix = 10);
136 unsigned integer_radix(
void)
const;
137 void set_integer_display(radix_display_t display = radix_c_style_or_hash);
138 radix_display_t integer_display(
void)
const;
141 void set_real_width(
unsigned width = 0);
142 unsigned real_width(
void)
const;
143 void set_real_precision(
unsigned width = 6);
144 unsigned real_precision(
void)
const;
145 void set_real_display(real_display_t display = display_mixed);
146 real_display_t real_display(
void)
const;
155 bool put(
const char*);
156 bool put(
const std::string&);
159 unsigned long bytes(
void)
const;
162 unsigned line(
void)
const;
163 unsigned column(
void)
const;
169 operator bool(
void)
const;
170 bool operator!(
void)
const;
178 otext& operator<<(
char);
179 otext& operator<<(
signed char);
180 otext& operator<<(
unsigned char);
183 otext& operator<<(
const char*);
184 otext& operator<<(
const std::string&);
187 otext& operator<<(
const std::vector<std::string>&);
190 otext& operator<<(
bool);
191 otext& operator<<(
short);
192 otext& operator<<(
unsigned short);
193 otext& operator<<(
int);
194 otext& operator<<(
unsigned int);
195 otext& operator<<(
long);
196 otext& operator<<(
unsigned long);
199 otext& operator<<(
float);
200 otext& operator<<(
double);
203 otext& operator<<(
const void*);
206 otext& operator<<(manipulator_function);
231 const char newline =
'\n';
232 const char space =
' ';
233 const char tab =
'\t';
234 const char null =
'\0';
258 friend std::string to_string(newline_t);
260 friend std::string to_string(
int);
263 typedef void (*manipulator_function)(
itext&);
273 virtual ~
itext(
void);
276 bool initialised(
void)
const;
289 bool error(
void)
const;
290 int error_number(
void)
const;
291 std::string error_string(
void)
const;
292 void set_error(
int error);
293 void clear_error(
void);
296 void set_newline_mode(newline_t newline = convert_mode);
297 void set_convert_mode(
void);
298 void set_binary_mode(
void);
299 newline_t newline_mode(
void)
const;
300 bool is_convert_mode(
void);
301 bool is_binary_mode(
void);
313 unsigned long bytes(
void)
const;
316 unsigned line(
void)
const;
317 unsigned column(
void)
const;
322 bool operator!(
void);
331 itext& operator>>(
char&);
332 itext& operator>>(
signed char&);
333 itext& operator>>(
unsigned char&);
337 itext& operator>>(std::string&);
339 bool getline(std::string& line);
342 itext& operator>>(std::vector<std::string>&);
349 itext& operator>>(
bool&);
350 itext& operator>>(
short&);
351 itext& operator>>(
unsigned short&);
352 itext& operator>>(
int&);
353 itext& operator>>(
unsigned int&);
354 itext& operator>>(
long&);
355 itext& operator>>(
unsigned long&);
358 itext& operator>>(
float&);
359 itext& operator>>(
double&);
366 itext& operator>>(manipulator_function);
376 void skipwhite(
itext&);
379 void skiponewhite(
itext&);
382 void skipspaces(
itext&);
385 void skipline(
itext&);
388 void skipendl(
itext&);
402 obuff(
bool line_buffer =
false, otext::newline_t newline = otext::native_mode);
407 void increment(
bool newline =
false);
408 unsigned long bytes(
void)
const;
409 unsigned line(
void)
const;
410 unsigned column(
void)
const;
413 void set_line_buffer(
bool mode);
414 bool line_buffer(
void)
const;
417 void set_newline_mode(otext::newline_t newline);
418 otext::newline_t newline_mode(
void)
const;
422 unsigned integer_width(
void)
const;
423 void set_integer_width(
unsigned);
425 unsigned integer_radix(
void)
const;
426 void set_integer_radix(
unsigned);
428 radix_display_t integer_display(
void)
const;
429 void set_integer_display(radix_display_t);
433 unsigned real_width(
void)
const;
434 void set_real_width(
unsigned);
436 unsigned real_precision(
void)
const;
437 void set_real_precision(
unsigned);
439 real_display_t real_display(
void)
const;
440 void set_real_display(real_display_t);
446 void set_error(
int error);
447 void clear_error(
void);
448 int error_number(
void)
const;
449 virtual std::string error_string(
void)
const;
467 virtual void flush(
void);
472 virtual unsigned put(
unsigned char) = 0;
476 virtual ~
obuff(
void);
486 otext::newline_t m_newline;
487 unsigned long m_bytes;
490 unsigned m_integer_width;
491 unsigned m_integer_radix;
492 radix_display_t m_integer_display;
493 unsigned m_real_width;
494 unsigned m_real_precision;
495 real_display_t m_real_display;
504 ibuff(itext::newline_t newline = itext::convert_mode);
509 void increment(
bool newline =
false);
510 unsigned long bytes(
void)
const;
511 unsigned line(
void)
const;
512 unsigned column(
void)
const;
515 void set_newline_mode(itext::newline_t newline);
516 itext::newline_t newline_mode(
void)
const;
522 void set_error(
int error);
523 void clear_error(
void);
524 int error_number(
void)
const;
525 virtual std::string error_string(
void)
const;
535 virtual int peek(
void) = 0;
536 virtual int get(
void) = 0;
540 virtual ~
ibuff(
void);
549 itext::newline_t m_newline_mode;
550 unsigned long m_bytes;
Definition: textio.hpp:502
Definition: textio.hpp:242
Definition: textio.hpp:399
Definition: textio.hpp:37