рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Прапори формату

Прапори формату - Конспект, раздел Образование, Конспект лекцій СИСТЕМНЕ ПРОГРАМУВАННЯ Кожен Потік Вводу - Виводу Пов'язаний З Набором Прапорів Формату (Format Flag...

Кожен потік вводу - виводу пов'язаний з набором прапорів формату (format flags), які управляють способом форматування інформації і є бітовими масками. Ці маски оголошені в класі ios як дані переліку fmtflags:

 

adjustfield floatfield right skipws
basefield hex scientific unitbuf
boolalpha internal showbase uppercase
dec left showpoint  
fixed oct showpos  

 

Всі ці значення оголошені в класі ios і необхідні для установки або очистки прапорів формату.

Коли для потоку встановлений прапор skipws, початкові невидимі символи (пробіли, табуляції і символи нового рядка) при вводі інформації відкидаються. Коли прапор skipws скинутий, невидимі символи не відкидаються.

Коли встановлений прапор left, відбувається вирівнювання виводу по лівому краю. Коли встановлений прапор right, здійснюється вирівнювання виводу по правому краю. Коли встановлений прапор internal, для заповнення поля виводу здійснюється вставка пробілів між всіма цифрами і знаками числа. Якщо всі ці прапори не встановлені, то за умовчанням використовується вирівнювання по правому краю.

За умовчанням числові значення виводяться в десятковій системі числення. Проте основу системи числення можна поміняти. Установка прапора oct приведе до того, що вивід здійснюватиметься у вісімковій системі числення, а установка прапора hex — в шіснадцятковій. Щоб повернутися до десяткової системи числення, потрібно встановити прапор dec.

Установка прапора showbase веде до виводу основи системи числення. Наприклад, шіснадцяткове значення 1F з цим прапором буде виведено як 0x1F.

За умовчанням при виводі значень в науковій нотації символ "e" виводиться в нижньому регістрі. Окрім цього, при виводі шіснадцяткового значення символ "x" теж виводиться в нижньому регістрі. При установці прапора uppercase ці символи виводяться у верхньому регістрі. Установка прапора showpos приводить до виводу знаку + перед позитивними значеннями.

Установка прапора showpoint веде до появи десяткової крапки і подальших нулів при виводі будь-яких значень з плаваючою крапкою. При установці прапора scientific числа з плаваючою крапкою виводяться в науковій нотації. При установці прапора fixed числа з плаваючою крапкою виводяться у звичайній нотації. Якщо жоден з цих прапорів не встановлений, компілятор сам вибирає відповідний спосіб виводу.

Якщо встановлений прапор unitbuf, то внутрішній буфер системи вводу – виводу очищується (flush) після кожної операції вставки (<<).

При встановленому прапорі boolalpha значення логічного типу виводяться у вигляді ключових слів true і false.

Одночасно на всі поля, визначені з прапорами oct, dec і hex, можна послатися за допомогою прапора basefield.

Аналогічно на поля, визначені прапорами left, right та internal, можна послатися за допомогою прапора adjustfield.

І, нарешті, на поля з прапорами scientific і fixed можна послатися за допомогою прапора floatfield.

9.3.2 Функції установки| і очистки прапорів формату setf() та unsetf()

Для установки прапорів формату використовується функціяsetf(). Ця функція є членом класу ios. Її основний формат (профіль) наступний:

 

fmtflags setf(fmtflags flags);

 

Ця функціяповертає попередні установки прапорів формату і встановлює нові, задані значенням flags. Значення решти всіх прапорів не змінюються.

Наприклад, для установки прапора showpos можна скористатися наступною інструкцією:

 

потік.setf (ios::showpos);

 

Тут слово потік перед крапкою повинно бути замінено ідентифікатором потоку (cin, cout, cerr або clog), для якого встановлюється прапор showpos.

Оскільки прапор showpos — це константа з переліку класу ios, необхідно поставити перед прапором showpos ім'я класу та оператор розширення області видимості. Якщо цього не зробити, константа showpos просто не буде розпізнана компілятором.

Важливо розуміти, що функціяsetf() є членом класу ios і впливає на створені на базі цього класу потоки вводу - виводу. Тому будь-який виклик функції setf() робиться щодо конкретного потоку, який є об'єктом класу, похідного від ios.

Не можна викликати функцію setf() саму по собі. Іншими словами, в C++ немає поняття глобального стану формату. Кожен потік вводу - виводу підтримує власну інформацію про стан формату.

Замість повторних викликів функції setf() в одному виклику можна встановити відразу декілька прапорів. Для об'єднання необхідних прапорів потрібно використовувати оператор порозрядної диз'юнкції “|”. Наприклад, в наступному виклику функції setf() для потоку cout встановлюються прапори showbase і hex:

 

cout.setf(ios::showbase | ios::hex);

 

Зворотною по дії до функції setf() є функціяunsetf(). Ця функція-член класу ios очищає один або декілька прапорів формату. Нижче показаний її основний формат:

 

void unsetf(fmtflags flags);

 

Прапори, задані параметром flags, очищаються. Решта прапорів залишається без змін.

У прикладі нижче показано, як встановити декілька прапорів формату:

 

#include <iostream>

using namespace std;

int main()

{

// вивід з використанням установок за умовчанням

cout << 123.23 << " це не є " << 100 << 'n';

cout << 10 <<' ' << -10 << 'n';

cout << 100.0 << 'n';

// тепер міняємо формат

cout.unsetf(ios::dec);

cout.setf(ios::hex | ios::scientific);

cout << 123.23 << " це не є " << 100 << 'n';

cout.setf(ios::showpos);

cout << 10 << ' ' << -10 << 'n';

cout.setf(ios::showpoint | ios::fixed);

cout << 100.0;

return 0;

}

 

Після виконання програми на екран виводиться наступне:

 

123.23 це не є 100

10 -10

1.232300е+02 це не є 64

а fffffff6

+100.000000

 

Прапор showpos впливає тільки на вивід десяткових значень. Він не впливає на число 10, коли воно виводиться в шіснадцятковій системі числення.

9.3.3 Функція читання і установки| всіх прапорів формату flags()

Оскільки функції setf() і unsetf() міняють стан одного або декількох окремих прапорів, в клас ios включена функція-член flags(), яка просто повертає поточний стан прапорів формату. Вона дає можливість програмі дізнатися поточний стан всіх прапорів і при цьому нічого не міняє. Нижче показаний прототип цієї функції:

 

fmtflags flags();

 

Функція flags() має і другий перевантажений варіант, який дозволяє встановити всі, пов'язані з потоком вводу – виводу, прапори формату. Прапори задаються в аргументі функції f. Нижче показаний прототип цього варіанту функції:

 

fmtflags flags(fmtflags f) ;

 

При використанні цього варіанту функції flags() бітовий шаблон f копіюється у змінну для зберігання прапорів формату, пов'язаних з потоком; при цьому перезаписується весь попередній набір прапорів. Функція повертає попередні установки прапорів формату.

В наступній програмі проілюстрована робота другого варіанту функції flags():

 

int main()

{

// встановлюються прапори showpos, showbase, oct і right;

// інші очщуються

ios::fmtflags f = ios::showpos | ios::showbase | ios:: oct | ios::right;

cout.flags(f); // установка прапорів

return 0;

}

 

Спочатку, встановлюючи прапори showpos, showbase, oct і right, створюється маска прапорів в оголошеній змінній f. Потім за допомогою функції flags() маска заміняє значення змінної прапорів для потоку виводу cout.

9.3.4 Функції width(), precision() і fill()

Окрім прапорів формату і функцій для роботи з ними в класі ios визначені ще три додаткові функції-члена. Ці функції встановлюють наступні параметри формату: ширину поля, точність і символ заповнення. Цими функціями є, відповідно, функції width(), precision() і fill().

За умовчанням при виводі будь-якого значення воно займає стільки позицій, скільки символів виводиться. Проте за допомогою функції width() можна задати мінімальну ширину поля. Нижче показаний прототип цієї функції:

 

streamsize width (streamsize w);

 

Ширина поля задається аргументом w, а функціяповертає попередню ширину поля. Тип даних streamsize оголошений в заголовному файлі <iostream> як одна з форм цілого.

Після установки мінімальної ширини поля, якщо для значення, яке виводиться, потрібне поле, менше заданої ширини, залишок поля заповнюється поточним символом заповнення (за умовчанням пробілом) так, щоб була зайнята вся ширина поля. Проте, якщо розмір значення, що виводиться, перевершує мінімальну ширину поля, буде зайнято стільки символів, скільки потрібно. Значення, що виводиться, не усікається.

За умовчанням при виводі значень з плаваючою крапкою точність рівна шести цифрам. Проте за допомогою функції precision() це число можна змінити. Нижче показаний прототип функції precision():

 

streamsize precision(streamsize p);

 

Точність (число цифр, що виводяться після крапки) задається параметром р, а повертає функціяпопереднє значення точності.

За умовчанням, якщо потрібно заповнити вільні поля, використовуються пробіли. Проте за допомогою функції fill() можна змінити символ заповнення. Нижче показаний прототип функції fill():

 

char fill(char ch);

 

Після виклику функції fill() символ ch стає новим символом заповнення, а функціяповертає попереднє значення символу заповнення.

У наступній програмі показано, як за допомогою описаних функцій управління форматуванням створити вирівняну таблицю аргументів, квадратних коренів і квадратів чисел від 2 до 20:

 

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

double x;

cout.precision(4);

cout << "x sqrt(x) х^2nn";

for(x = 2.0; x <= 20.0; x++)

{

cout.width(7);

cout << x << " ";

cout.width(7);

cout << sqrt(x)<< " ";

cout.width(7);

cout << x*x << "n";

}

return 0;

}

 

Після виконання програми на екран буде виведено наступне:

 

x sqrt(x) x^2
     
1.414
1.732
4
2.236
2.449
2.646
2.828
3.162
3.317
3.464
3.606
3.742
3.873
4.123
4.243
4.359
4.472

9.3.5 Маніпулятори вводу - виводу

В системі вводу - виводу C++ є ще один спосіб форматування інформації. Цей спосіб припускає використання спеціальних функцій - маніпуляторів вводу - виводу (I/O manipulators). Маніпулятори вводу - виводу в деяких ситуаціях є зручнішими, ніж прапори і функції формату класу ios.

Маніпулятори вводу - виводу є спеціальними функціями формату вводу - виводу, які, на відміну від функцій — членів класу ios, можуть розташовуватися всередині інструкцій вводу - виводу. Стандартні маніпулятори перелічені в табл. 9.3.

 

Таблиця 9.3

Таблиця стандартних маніпуляторів вводу – виводу

Маніпулятор Призначення Ввід чи вивід
boolalpha Установка прапору boolalpha Ввід – вивід
dec Установка прапору dec Ввід – вивід
endl Вивід символу нового рядка і очищення потоку   Вивід
ends Вивід значення NULL Вивід
fixed Установка прапору fixed Вивід
flush Очищення потоку Вивід
hex Установка прапору hex Ввід - вивід
internal Установка прапору internal Вивід
left Установка прапору left Вивід
noboolalpha Очистка прапору boolalpha Ввід - вивід
noshowbase Очистка прапору showbase Вивід
noshowpoint Очистка прапору showpoint Вивід
noshowpos Очистка прапору showpos Вивід
noskipws Очистка прапору skipws Ввід
nounitbuf Очистка прапору unitbuf Вивід
nouppercase Очистка прапору uppercase Вивід
oct Установка прапору oct Ввід - вивід
resetiosflags(fmtflags f) Очистка прапорів, заданих параметром f Ввід - вивід
right Установка прапору right Вивід
scientific Установка прапору scientific Вивід
setbase (int b) Завдання основи системи числення b Ввід - вивід
setfill(int ch) Завдання символу заповнення ch Вивід
setiosflags(fmtflags f) Установка прапорів, заданих параметром f Ввід - вивід
setprecision(int p) Завдання кількості цифр точності, рівної р Вивід
setw(int w) Завдання ширини поля, рівної w позиціям Вивід
showbase Установка прапору showbase Вивід
showpoint Установка прапору showpoint Вивід
showpos Установка прапору showpos Вивід
skipws Установка прапору skipws Ввід
unitbuf Установка прапору unitbuf Вивід
uppercase Установка прапору uppercase Вивід
ws Пропуск початкових пробілів Ввід

 

Як видно з таблиці, значна частина маніпуляторів вводу - виводу по своїх діях аналогічна відповідним функціям — членам класу ios.

Для доступу до маніпуляторів з аргументами, таким, наприклад, як функціяsetw(), необхідно включити в програму заголовок <iomanip>. У цьому заголовку немає необхідності при використанні маніпуляторів без аргументів.

Маніпулятори можна задавати всередині ланцюжка операцій вводу - виводу. Наприклад:

 

cout << oct << 100 << hex << 100;

cout << setw(10)<< 100;

 

Перша інструкція повідомляє потік cout про необхідність виводу цілих у вісімковій системі числення і виводить число 100 у вісімковій системі числення. Потім вона повідомляє потік вводу - виводу про необхідність виводу цілих у шіснадцятковій системі числення і далі здійснюється вивід числа 100 вже у шіснадцятковому форматі.

У другій інструкції встановлюється ширина поля рівна 10, і потім знову виводиться 100 в шіснадцятковому форматі.

Якщо маніпулятор використовується без аргументів (у даному прикладі таким є маніпулятор oct), дужки за ним не ставляться, оскільки це насправді адреса функції - маніпулятора, що передається перевантаженому оператору <<.

Якщо за допомогою маніпулятора потрібно встановити конкретні прапори формату, потрібно використовувати функцію setiosflags(). Цей маніпулятор реалізує ту ж функцію, що і функція-член setf().

Для очистки прапорів формату потрібно використовувати маніпулятор resetiosflags(). Цей маніпулятор еквівалентний функції-члену unsetf().

Як приклад програми, що використовує маніпулятори, нижче представлена інша версія програми, в якій на екран виводиться таблиця квадратів і квадратних коренів чисел від 2 до 20. У цій версії замість функцій-членів і прапорів формату використовуються маніпулятори вводу -виводу:

 

#include <iostream>

#include <iomanip>

#include <cmath>

using namespace std;

int main()

{

double x;

cout << setprecision(4);

cout << "x sqrt(x) х^2nn";

for(x = 2.0; x <= 20.0; x++)

{

cout << setw(7)<< x << " ";

cout << setw(7)<< sqrt(x)<< " ";

cout << setw(7)<< x*x << 'n';

}

return 0;

}

9.4 Файловий ввід – вивід

Розглянутий раніше консольний ввід – вивід і розглянутий тут файловий ввід – вивід тісно зв'язані один з одним. Фактично файловий ввід – вивід підтримується тією ж ієрархією класів, що і консольний ввід - вивід.

Для реалізації файлового вводу - виводу необхідно включити в програму заголовок <fstream>. У ньому оголошено декілька класів, включаючи класи ifstream, ofstream і fstream. Ці класи є похідними від розглянутих раніше класів istream та ostream, які в свою чергу є похідними від класу ios. Тому класи ifstream, ofstream та fstream також мають доступ до всіх методів і змінних, оголошених в класі ios.

9.4.1 Відкриття файлу

У мові C++ файл відкривається за допомогою його зв'язування з потоком. Є три типи потоків: вводу, виводу і вводу - виводу.

Перш ніж відкрити файл, потрібно, по-перше, створити потік. Для створення потоку вводу необхідно оголосити об'єкт класу ifstream. Для створення потоку виводу — об'єкт класу ofstream. Потоки, які реалізують одночасно ввід і вивід повинні оголошуватися як об'єкти класу fstream. Наприклад, в наступному фрагменті програми створюється один потік для вводу, один потік для виводу і ще один потік одночасно для вводу і для виводу:

 

ifstream in; // ввід

ofstream out; // вивід

fstream io; // ввід і вивід

 

Після створення потоку одним із засобів пов'язати його з файлом є функціяореn(). Ця функція є членом кожного з трьох потокових класів. Нижче приведені її прототипи для кожного класу:

 

void ifstream::open(const char *file_name,

openmode mode = ios::in);

void ofstream::open(const char *file_name,

openmode mode = ios::out | ios::trunc);

void fstream::open(const char *file_name,

openmode mode = ios::in | ios::out) ;

 

Тут file_name — ім'я файлу, в яке може входити і специфікатор путі до файлу. Аргумент mode задає режим відкриття файлу. Він повинен бути значенням типу openmode, яке є переліком, оголошеним в класі ios. Значення аргументу mode може бути одним з наступних:

 

ios::арр

ios::ate

ios::binary

ios::in

ios::out

ios::trunc

 

Можна об'єднати два або більше цих значень за допомогою оператора побітової диз'юнкції “|”.

Значення ios::app викликає відкриття файлу в режимі додавання в кінець файлу. Це значення може застосовуватися тільки до файлів, що відкриваються для виводу.

Значення ios::ate задає режим пошуку кінця файлу при його відкритті. Хоча значення ios::ate викликає пошук кінця файлу, проте, операції вводу - виводу можуть бути виконані в будь-якому місці файлу.

Значення ios::binary викликає відкриття файлу для роботи в двійковому режимі. За умовчанням всі файли відкриваються в текстовому режимі, в якому має місце перетворення деяких символів, наприклад, послідовність символів "повернення каретки"/"перевод рядка" перетворюється на символ нового рядка. Якщо ж файл відкривається в двійковому режимі, такі перетворення не виконуються. Треба мати на увазі, що будь-який файл, незалежно від того, що в ньому міститься — відформатований текст або необроблені дані — може бути відкритий як в текстовому, так і в двійковому режимі. Відмінність між ними тільки у відсутності або наявності згаданого символьного перетворення.

Значення ios::in задає режим відкриття файлу для вводу.

Значення ios::out задає режим відкриття файлу для виводу.

Значення ios::trunc приводить до знищення вмісту раніше існуючого файлу з тією ж назвою і усіканню його до нульової довжини. При створенні потоку виводу за допомогою цього ключового слова будь-який раніше існуючий файл з тим же ім'ям автоматично усікається до нульової довжини.

В наступному фрагменті програми для виводу відкривається файл test:

 

ofstream mystream;

mystream.open("test");

 

В даному прикладі аргумент функції ореn() mode за умовчанням встановлюється у значення, відповідне типу потоку, що відкривається, тому немає необхідності вказувати його явно.

Якщо виконання функції ореn() завершується з помилкою, використання потоку в логічному виразі дає значення false. Цей факт можна використовувати для перевірки правильності відкриття файлу за допомогою, наприклад, такої інструкції:

 

if (!mystream)

{

cout << "Файл відкрити неможливо n";

// інструкції обробки помилки відкриття файлу

}

 

Як правило, перш ніж намагатися дістати доступ до файлу, практично завжди слід перевіряти результат виконання функції ореn().

Перевірити правильність відкриття файлу можна також за допомогою функції is_open(), що є членом класів ifstream, ofstream і fstream. Нижче показаний прототип цієї функції:

 

bool is_open();

 

Функція повертає істину, якщо потік вдалося зв'язати з відкритим файлом, інакше функціяповертає хибність.

Наприклад, в наступному фрагменті перевіряється, чи відкритий файл, пов'язаний з потоком mystream:

 

if(!mystream.is_open())

{

cout << "Файл не відкритий n";

// …

}

 

Хоча можна використовувати функцію ореn() для відкриття файлу, часто в цьому немає необхідності, оскільки у класів ifstream, ofstream та fstream є конструктори, які відкривають файл автоматично. Конструктори мають ті ж аргументи, у тому числі й задані за умовчанням, що і функціяореn(). Тому частіше за все використовується наступний спосіб відкриття файлу:

 

ifstream mystream("myfile"); // відкриття файлу для вводу

 

Незалежно від того, використовувався конструктор або була явно викликана функцію ореn(), потрібно переконатися в успішному відкритті файлу шляхом перевірки значення потоку.

– Конец работы –

Эта тема принадлежит разделу:

Конспект лекцій СИСТЕМНЕ ПРОГРАМУВАННЯ

Конспект лекцій... по дисциплiні СИСТЕМНЕ ПРОГРАМУВАННЯ...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Прапори формату

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

РОБОТА З ДАНИМИ
Якість організації і представлення даних, що обробляються програмами, має не менше значення, ніж хороше розбиття програм на функції, обробляючі ці дані, та реалізація алгоритмів цих функцій. Більш

Оголошення
В мові С++ кожне ім'я (ідентифікатор) слід оголосити перш, ніж воно буде використовуватися в програмі. Це означає, що потрібно вказати його тип, щоб компілятор знав, до якого виду об'єктів має відн

Синтаксис оголошення
Оголошення складається з чотирьох частин: необов'язкових одного або декількох специфікаторів, базового типу, частки оголошення і, можливо, ініціалізатора. За винятком визначень функцій і просторів

Посилання
Посилання (reference) – особливий тип даних, що є прихованою формою вказівника, який при зверненні автоматично розіменовується. Посилання можна розглядати як ще одне ім'я об'єкту. Посиланн

Типи даних користувача
Описані раніше вбудовані типи даних мови C++ можуть бути доповнені новими типами даних, визначеними самим користувачем. Типи даних користувача діляться на три групи: переліки, структури й об'єднанн

Структури мови C
Масив є сукупністю елементів одного типу, а структура є сукупністю елементів різних типів. Оголошення структури має наступний формат:   struct struct_name {

Оголошення typedef
Оголошення, що починається з ключового слова typedef, вводить нове ім'я (синонім) для типу, а не оголошує нову змінну цього типу. Формат оголошення typedef наступний:   typed

Масиви як аргументи
Якщо в якості аргументу функції задається масив, то передається вказівник на його перший елемент. Наприклад:   int strlen(const char*); void f() {

Аргументи за умовчанням
У функції загального призначення можуть бути більше аргументів, ніж це потрібно в найпростіших і найбільш часто використовуваних випадках. Зокрема, це властиво функціям, що будують об'єкти по запит

Макрос WINAPI
Оскільки компілятор Visual C++ більше не підтримує ключових слів __pascal, __fortran та __syscall, їх дію рекомендується емулювати за допомогою описаних вище ключових слів __cdecl, __stdcall або __

ПРОГРАМУВАННЯ ВИКЛЮЧЕНЬ
Виключною ситуацією, або виключенням (exception), називається переривання нормального потоку виконання програми у відповідь на непередбачену або аварійну подію. Події, що приводять до викл

Виключення Win32
Разом з програмними викликами виключень за допомогою інструкції throw, виключення генеруються системними програмами Win32 API у відповідь на збій апаратного або програмного забезпечення. Такі виклю

Обробка виключень Win32
Існує декілька способів обробки виключень Win32. Найбільш простий з них полягає в використанні блоку catch з трьома крапками:   try { // … // генер

МОДУЛЬНЕ ПРОГРАМУВАННЯ
Набір зв'язаних процедур разом з даними, які вони обробляють, називається модулем. Модуль – програмний фрагмент, який є будівельним блоком для побудови великих програм. Як правило, модуль складаєть

Директиви препроцесора
Існує 14 стандартних директив препроцесора:   #include #define #undef #if #ifdef #ifndef #elif #else #

Макроси
Директива #define для оголошення макросів має дві синтаксичні форми:   #define ідентифікатор макроозначення #define ідентифікатор (список параметрів) макроозначення

Конструктори
Раніше наведене оголошення класу CFrame дозволяє ініціалізувати змінні-члени об'єктів класу шляхом виклику програмою користувача функції-члена класу SetCoord(). В якості іншого, стандартно

Конструктори за умовчанням
Конструктор без аргументів називають конструктором за умовчанням. Такий конструктор звичайно ініціалізує змінні-члени, присвоюючи їм стандартні, встановлювані за умовчанням значення. Наприклад, нас

Деструктори
Відповідно до принципів об'єктно-орієнтованого програмування| в класі можна оголосити спеціальну функцію-член|, звану деструктором. Деструктор автоматично викликається кожного разу при зни

Правила спадкування
Спадкування, тобто породження одного класу з іншого, дозволяє повторно використовувати коди й структури даних, раніше створені для інших класів. Це робить програму зрозумілішою і допомагає в моделю

Переваги спадкування
Як випливає з приведених вище простих прикладів, спадкування дозволяє повторно використовувати створені раніше фрагменти програм і структури даних. Це дозволяє уникнути непотрібного дублювання прог

Конструктори приведення
Конструктор приведення класу — це конструктор з єдиним аргументом, тип якого відрізняється від типу класу. Такий конструктор звичайно ініціалізує новий об'єкт, використовуючи літерали, або дані змі

УЗАГАЛЬНЕНЕ ПРОГРАМУВАННЯ
Узагальнене програмування з використанням шаблонів мови C++ полегшує генерацію сімейств функцій або класів, що оперують множинами даних різних типів. При цьому не виникає необхідності створювати ок

Клас string
У мові C++ для представлення і обробки рядків є дві можливості. По-перше, можна використовувати символьний масив, що закінчується нулем і є рядком в стилі мови C, як це й робилося практичн

Контейнери
Перед тим, як дати загальне визначення контейнера, спочатку як приклад сконструюємо простий контейнер на базі розглянутого раніше стека символів. Ми можемо узагальнити стек символів до сте

Потоки вводу - виводу
Як вже мовилося раніше, якщо програма на мові C починає виконуватися, автоматично відкриваються три потоки: stdin, stdout і stderr.Щось схоже має місце при завантаженні програми, написаної на мові

Класи потокового вводу - виводу
У C++ ввід - вивід забезпечується підключенням до програми заголовного файлу <iostream>. Саме в цьому файлі оголошені класи, що підтримують операції вводу – виводу. Система вводу – в

Закриття файлу
Для закриття файлу використовується функція-член| close(). Наприклад, щоб закрити файл, пов'язаний з потоком mystream, необхідна наступна інструкція:   mystream.close ();

Контроль стану вводу - виводу
В системі вводу - виводу C++ підтримується інформація про стан після кожної операції вводу - виводу. Поточний стан потоку вводу - виводу, який зберігається в об'єкті типу iostate, є переліком, визн

Атрибути
Атрибути є позначками, що використовуються програмістом для передачі декларативної інформації. Приймачем інформації може бути інструментальне середовище, програма-конструктор, аналізатор програмног

Мова програмування Visual Basic .NET
Хоча мови програмування керований C++, С# та Visual Basic .NET (VB) семантично мають практично однакові можливості, оскільки всі вони базуються на загальній специфікації мов програмування .NET (CLS

Цикл For
В мові С++ цикл for має дещо інший синтаксис, ніж цикл For в мові VB, але концепція залишається тою ж самою, якщо не зважати на те, що операція, яка виконується в кінці кожної ітерації, має бути вк

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги