Въвеждане и извеждане. C++

  1. За въвеждането на данни е необходимо да се знае: за кои величини ще се въвеждат стойности, какъв е типът им и съответно кои са допустимите стойности, от кое устройство се извършва въвеждането на данни.
  2. За извеждането на резултати е необходимо да се знае: кои са величините(изразите) чиито стойности ще се извеждат(те задължително трябва да имат стойности), какъв ще бъде форматът на извеждане, чрез кое устройство ще се извърши извеждането.

В езика С++ входно-изходни операции не са непосредствени команди и затова те не са включени в списъка на ключовите думи. По-скоро входно-изходните потоци и командите за управлението им са библиотечни функции. Биоблиотеките са iostream.h и stdio.h. Класът istream обслужва операциите по въвеждане на данни, а видът ostream – тези по извеждане на данни. Двата вида заедно образуват iostream. Този вид обединява в себе си функциите на гореспоменатите видове така, че обслужва входно-изходните операции.

iostream.h – поддържа входно-изходните операции с монитора и клавиатурата

I. Вход на данни: Входът от клавиатурата е буфериран. Това означава, че всяка редица от натиснати клавиши се разглежда като пакет, който се обработва чак след като се натисне клавиша ENTER.

1. Синтаксис:

cin >> <променлива>; където:

  • cin е обект (променлива) от клас (тип) istream, свързан с клавиатурата,
  • <променлива> е идентификатор, дефиниран, като променлива от “допустим тип”, преди оператора за въвеждане. (Типовете int, long, double са допустими).

2. Семантика- Извлича (въвежда) от cin (клавиатурата) поредната дума и я прехвърля в аргумента-приемник <променлива>. Конструкцията cin >> <променлива> е израз от тип istream със стойност левия му аргумент, т.е. резултатът от изпълнението на оператора >> е cin.

Това позволява няколко думи да бъдат извличани чрез верига от оператори >>. Следователно, допустим е следният по-общ синтаксис на >>:

cin >> <променлива> { >> <променлива>};

Операторът >> се изпълнява отляво надясно. Такива оператори се наричат ляво асоциативни. Така операторът cin >> променлива1 >> променлива2 >> … >> променливаn; е еквивалентен на редицата от оператори:

cin >> променлива1;

cin >> променлива2;

cin >> променливаn;

II. Оператор за изход <<

1. Синтаксис: cout << <израз>; където:

  • cout е обект (променлива) от клас (тип) ostream и предварително свързан с екрана на компютъра;
  • <израз> е израз от допустим тип. Представата за израз продължава да бъде тази от математиката. Допустими типове са bool, int, short, long, double, float и др.

2. Семантика- Операторът << изпраща (извежда) към (върху) cout (екрана на компютъра) стойността на <израз>. Конструкцията cout << <израз> е израз от тип ostream и има стойност първия му аргумент, т.е. резултатът от изпълнението на оператора << в горния случай е cout.

Това позвалява чрез верига от оператори << да бъдат изведени стойностите на повече от един <израз>, т.е. допустим е следният по-общ синтаксис:

cout << <израз> { << <израз>}; Операторът << се изпълнява отляво надясно (ляво асоциативен). Така операторът cout << израз1 << израз2 << … << изразn е еквивалентен на редицата от оператори:

cout << израз1;

cout << израз2;

cout << изразn;

3. Форматиран изход: Необходимо е използването на библиотека iomanip.h

При извеждане на реални числа е необходимо да се познават начините за форматиране на изход. Дробните числа се представят по 2 начина: Напр: 0.00000023 и 2.3-10е7- експоненциален вид на числото. С оператора cout<<1.234567 ще се изведе 1.23456, защото стандартно се извеждат 6 значещи цифри. Точността може да се управлява със следните манипулатори за извеждане:

a)      Setprecision(<цяло число>), където <цяло число> е броя на цифрите след десетичната точка:

cout << setprecision (6)<< 1.23456789;

изход на екрана: 1.234567

b)      setw (<цяло число>), където <цяло число> е ширината на полето(минимална стойност), в което се извежда променливата:

cout << setw (12) <<123456;

изход на екрана: ––123456

с)      други символи за форматиране на изхода:

*    \n- нов ред

*    \t- табулация

3.Пример- да се разпечата следната фигура:

1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
3 2 1 2 3
2 1 2
1

Коментари: