![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Жолдық ағындар
Жол ағ ыны жұ мысын istringstream, ostringstream stringstream кластары қ амтамасыз етеді, istream, ostream жә не iostream ө ндірістік класстар болып табылады. Жол ағ ымын қ олдану ү шін бағ дарламағ а ostream бастапқ ы файлын қ осу қ ажет. Жол ағ ынын қ олдану, файл ағ ынын қ олдану аналогты айырмашылығ ы физикалық мә лімет дискідегі файлда емес, оперативтің есінде сақ талады. Одан басқ а, жол ағ ыны класы str () ә дісінен қ ұ ралады, string жол кө шірмесін қ айтаратын немесе сондай жол ағ ынының мағ ынасын иемденетіндер: string str () void str (const string & s); Жол ағ ынында кейбір C кітапханасында sscanf () жә не sprintf () аналогты функция болып табылады, сонымен қ атар естегі жолдармен жұ мыс жасайды, енгізу жә не шығ ару консолі сипатталғ ан. Мысалы: sprintf () кө мегімен естегі кейбір символдық жолдарды қ алыпқ а келтіруге болады, сосын ол экранғ а шығ ады. Бұ л қ иындық тарды ostringstream объектісімен оң ай шешуге болады. Мысал ретінде алдық бағ дарламаның модифицирленген нұ сқ асын келтірейін, мә тін файлын экранғ а шығ аратын, мә тіндегі ә р жолды тексеретін “Line N: ”, мұ ндағ ы N—жол нө мірі:
// MyCopy.ccp файлынан — error () функциясын анық тау //... int main (int argc. char* argv [ ]) { i f (argc! = 2) error (" Қ ате аргумент саны. "); ifstream tfile (argv [ 1 ]); if (! tfile) error (“ Қ ате енгізу файлы: ”. argv [ 1 ]); int n = 0 char buf [ 1024 ]; while (! tfile. eof ()) { n++; tfile. getline (buf. sizeof (buf)); line < < “ Line ” < < setw (3) < < n < < “: “ < < buf < < endl; } return 0; } Кө рсетілген бойынша, ағ ындар файлғ а байланысты болу мү мкін, негізгі жадта сақ талғ ан символдарғ а емес, диск арқ ылы. Негізгі жадқ а да символдарды қ осуғ а болады. Мысалы: тез баспағ а жатпайтын хабарламаны форматтау ү шін шығ улы жолдық ағ ындармен қ олдануғ а болады. char* p = new char[message_size]; ostrstream ost(p, message_size); do_something(arguments, ost); display(p); Функция do_something стандарттық шығ ару операция бойынша ost деген функцияны ағ ынғ а жазуғ а болады, ost функциясын бағ ынушы функцияларғ а тапсыруғ а да болады. Ә лде толық тыру бақ ылауы қ ажет емес, яғ ни ost ө зінің ө лшемін біледі, жә не толық тырғ ан кезде fail () деген жағ дайғ а ауысады. Содан соң функция display «шын» шығ улы ағ ынғ а хабарлама жіберу мү мкін. Ондай ә діс кө бінесе кү рделі қ ұ рылғ ыларғ а соң ғ ы операцияларды жазғ анда ү йлеседі, яғ ни шығ улы қ ұ рылғ ылар ә деттегі жол жү йелілікке апарады. Мысалы, ost функциясы экрандағ ы бекітілген облысқ а сә йкес болу мү мкін. Тап солай, istrstream шығ улы жолдық ағ ын болады, ол нө лмен аяқ талатын символдардан окылады: void word_per_line (char v [ ], int sz) /* " v" ө лшеммен" sz" бірден жолғ а жазу */ { istrstream ist (v, sz); char b2 [ MAX ]; while (ist > > b2) cout < < b2 < < " \n "; } Аяқ тайтын нө л файлдың соң ы болып саналады. Жолды ағ ындар < strstream.h > файлында кө рсетіледі.
Бақ ылау сұ рақ тары: 1. Ағ ын дегеніміз не? 2. Ағ ынның тү рлері қ андай? 3. Ағ ын тү рлерінің бір-бірінен ерекшелігі неде? 4. Ағ ындық кластар дегеніміз не? Ә дебиеттер: 1. Павловская Т.А. С и С++. Программирование на языке высокого уровня. 2. Р. Лафоре. Объектно-ориентированное программирование в С++.4-е издание. Питер.2004 3. Подбельский В.В., Фомин С.С. Программирование на языке Си: Учебное пособие. – М.: Финансы и статистика, 2004 4. Гради Буч. Объектно - ориентированный анализ и проектирование с примерами приложений на С++. - М.: Изд. Бином, Невский Диалект, 1998. 5. А.В. Замулин. Курс лекций: ООП (С++, Ява, C#)
|