Пам’ять як потік

Область пам’яті можна вважати потоком і записувати в нього дані так само, як і в файл. Це вимагається, коли потрібно виводити дані в певному форматі (наприклад, залишати лише два знаки після коми) і одночасно використовувати функцію текстового виводу, що в якості аргументу вимагає рядка. Так звичайно роблять, викликаючи функції виводу при розробці застосувань у GUI-середовищах, наприклад, у Windows, оскільки там цим функціям потрібно передавати саме рядок в якості аргументу.

Сімейство потокових класів підтримує також форматування даних в пам’яті. Для виводу в пам’ять існує спеціальний клас ostrstream, породжений класом ostream. Для вводу в пам’ять використовується клас iststreаm, породжений, відповідно, класом istream. Для об’єктів, яким потрібно здійснювати одночасно ввід і вивід, створений клас strstream – спадкоємець iostream.

Найзручніше використовувати ostrstream. На прикладі програми 26.16 показано, як це робити. Почнемо зі створення буфера в пам’яті., потім створимо об’єкт oststream, використовуючи цей буфер (його адресу та розмір) в якості аргументів конструктора потоку. Тепер можна виводити форматований текст в буфер так, наче він є потоковим об’єктом.

#include<strstream>

#include<iostream>

#include<iomanip> //для setiosflags()

#include<conio>

using namespace std;

const int SIZE=80;

int main()

{char ch=’x’;

int j=77;

double d=67890.12345;

char str1[]=»Kartka»;

char str2[]=»Friend»;

 

char menuff[SIZE]; //буфер в памяті

ostrstream onem(menuff,SIZE); //створити потоковий обєкт

onem<<»ch=»<<ch<<endl //вставити форматовані дані

<<»j=»<<j<<endl

<<setiosflags(ios::fixed) //формат з десятковою комою

<<setprecision(2) //2 знаки після коми

<<»d=»<<d<<endl

<<»str1=»<<str1<<endl

<<»str2=»<<str2<<endl

<<ends; //закінчити буфер символом ‘\0’

cout<<menuff;//вивід вмісту буферу

getch();

return 0;

}

 

Програма 26.16

Можна форматувати дані звичними способами. Маніпулятор ends вставляє в кінець рядка службовий символ ‘\0’ створення ознаки EOF.

 








Дата добавления: 2015-08-26; просмотров: 488;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.