303
Жазу мен оқу ағымдық кластардағы сияқты мəлімет оқу жəне оны шығарып
алу операцияларының көмегімен немесе кластар əдістері арқылы орындалады.
Əдістерді қолдану мысалы (программа экранға файлдың ішкі мəліметін
шығарып береді):
#include
int main(){
char text[81], buf[81];
cout << "Файлдың атын енгізіңіз:";
cin >> text;
ifstream f(text, ios::in|ios::nocreate);
if
(!f){
cout << "Файлды ашудағы қателік"; return 1;
}
while
(!f.eof()){
f.getline(buf, 81);
cout << buf << endl;
}
return
0;
}
Ағымды жабу үшін
close()
əдісі анықталған, алайда оны деструктор жа-
намалы (нақты емес) түрде орындайтын болғандықтан, ағымды оның көріну
аумағының соңына жеткенге дейін жабу қажет болған кезде тікелей шақыру
қолданылады.
Тіркестік ағымдар
Тіркестік ағымдар ақпаратты жедел жады аймақтарынан дəл файлмен, кон-
сольмен немесе дисплеймен жұмыс істегендегідей түрде оқуға жəне жазуға
мүмкіндік береді. Стандартты кітапханада тіркестік ағымдардың үш класы
анықталған
1
:
istringstream
— кіріс тіркестік ағымдары;
ostringstream
— шығыс тіркестік ағымдары;
stringstream
— екібағытты тіркестік ағымдар.
Бұл кластар
2
тақырыптық файлында анықталады жəне олар
сəйкесінше
istream
,
ostream
жəне
iostream
кластарынан шыққан туынды
кластар болып табылады, сондықтан олар асыра жүктелген
<<
жəне
>>
операци-
яларын, форматтау жалаушаларын, манипуляторларды, əдістерді, ағымдардың
қалып-күйлерін жəне т.б. мұралайды.
Мəліметтерді оқу жəне шығарып алу операциялары орындалатын жады
аймақтары стандарт бойынша С++ тіркестері (
string
класы) ретінде
1
Компиляторлардың ескі нұсқаларында бұл кластардың атаулары басқаша болуы мүмкін.
2
Компиляторлардың ескі нұсқаларында тақырыптық файлдың атауы болуы мүмкін
.
304
анықталады. Тіркестік класс 307 б. қарастырылады. Тіркестік ағымдар
құрылады да, осы жады аймақтарымен келесі конструкторлар арқылы байла-
ныстырылады:
explicit
1
istringstream(int mode = ios::in);
explicit istringstream(const string& name,
int mode = ios::in);
explicit ostringstream(int mode = ios::out);
explicit ostringstream(const string& name,
int mode = ios::out);
explicit stringstream(int mode = ios::in | ios::out);
explicit stringstream(const string& name,
int mode = ios::in | ios::out);
Тіркестік ағымдар С кітапханасының
sscanf
жəне
sprintf
функциялары-
на ұқсас болып келеді жəне мəліметтер қандай да бір жады аймағына енгізіліп,
содан кейін қажетті типтегі шамаларға оқылған кезде оларды түрлендіру үшін
қолданылуы мүмкін. Бұл ағымдар, сонымен қатар, программаның модульдері
арасында ақпарат алмасу үшін қолданылуы мүмкін.
Тіркестік ағымдарда тіркестің көшірмесін қайтаратын немесе оның мəнін
орнататын
Достарыңызбен бөлісу: