You are on page 1of 3

Наредба за внесување на податоци “cin”

Досега ја разгледавме наредбата ”cout” која ги печати резултатите на екран.


Сега ќе ја разгледаме наредбата “cin” за читање на податоци. Двете наредби “cin”
и “cout” се дефинирани во библиотеката iostream. Можеме да забележиме дека
за читање се употребува операторот за извлекување на податоци (>>) а за внесување
на податоци се употребува операторот за вметнување (<<).

Најпрво да разгледаме еден пример за програма за собирање на два броја .

Тука се гледа дека е употребена наредбата за внесување “cin” каде што како
променливи ги внесуваме a и b. Програмата ќе ги прочита податоците и ќе ги смести во
променливата која е наведена во наредбата за читање.
Забележуваме дека читањето се прави преку извлекување (>>) на податоци од
наредбата cin . За разлика од читањето, печатењето го правиме преку вметнување (<<)
на податоци во наредбата ”cout”. Со една иста наредба може да прочитаме
вредности за повеќе променливи, слично како кај печатењето. Во примерот даден
погоре променливите a и b се читаат со употреба на една наредба.
Корисникот податоците ги внесува преку тастатура. Наредбата “cin” ја чита
внесената вредност и ја доделува на променливата чие име е наведено како
параметар. По внесувањето на податоците, корисникот мора да го притисне копчето
ENTER, во спротивно програмата нема да ги преземе податоците нема да продолжи со
работа.
cin>>a>>b; е исто што и cin>>a;
cin>>b;
Во двата случаи корисникот треба да внесе два податоци, првиот за променливата а, а
вториот за променливата b и при тоа по внесување на секој податок може да го
притисне копчето ЕНТЕР, или да ги одвои податоците со копчињата space или tab.
Примерот кој го имавме погоре нема грешки, но сепак нешто недостасува. Кога ќе ја
стартуваме (run) програмата добиваме празен екран, без инструкција што треба да
направиме. Затоа пред секоја “cin” наредба, потребно е да напишеме една ”cout”
наредба, која на корисникот ќе му прикаже порака со инструкција каков податок се
очекува од него.
Пр. cout<<”Vnesi cel broj: ”<<endl;
cin>>a;

Во следниот пример може да видиме како би изгледало тоа во програма:

Кажавме дека читањето на податоци се врши се додека не наидеме на знак за


празно место, tab или знак за нов ред. Доколку од корисникот би побарале да се внесе
име и презиме, тоа ќе се изведе коректно доколку корисникот внесе само еден збор
(пр. само неговото име). Но што ако сакаме во еднапроменлива да го прочитаме и
името и презимето на корисникот (кои се одделени со празно место)?
Решението на овој проблем е многу едноставно - ќе повикаме функција за читање на
цела линија податоци. Името на оваа функција е getline(stream, string) и таа
се повикува со два аргументи: потокот од кој сакаме да читаме – во нашиот случај
“cin” и променливата каде што сакаме да се сместат податоците. Функцијата ќе
вчитува податоци се додека не наиде на симболот “\n” кој означува преминување во
нов ред.

Пример
#include<iostream>
#include<string>
using namespace std;
int main() {
string podatoci;
cout << "Vnesi ime i prezime : ";
cout << podatoci<<endl;
return 0;
}

Истиот пример, но со примена на функцијата getline


#include<iostream>
#include<string>
using namespace std;
int main() {
string podatoci;
cout << "Vnesi ime i prezime : ";
getline(cin,podatci);
cout << podatoci<<endl;
return 0;

You might also like