302
nocreate = 0x20, // Егер файл жоқ болса,
// қатені шығару
noreplace = 0x40, // Егер файл бар болса,
// қатені шығару
binary = 0x80, // Файлды екілік режимде ашу
};
10.2-кестеде
ios
класының биттік маскалары мен
файлында
сипатталған файлды ашу режимдерінің (тəртіптерінің) арасындағы сəйкестік
көрсетілген.
10.2-кесте.
Файлды ашу режимдері
ios жалаушалары комбинациясы
stdio эквиваленті
binary
in
out
trunc
app
+
"w"
+
+
"a"
+
+
"w"
+
"r"
+
+
"r+"
+
+
+
"w+"
+
+
"wb"
+
+
+
"ab"
+
+
+
"wb"
+
+
"rb"
+
+
+
"r+b"
+
+
+
+
"w+b"
Программада файл ашу үшін констркторды немесе соған сəйкес конструк-
торға тəн
параметрлерге ие болатын
open
əдісін қолдануға болады, мысалы:
// Конструкторды қолдану
ifstream inpf ("input.txt", ios::in|ios::nocreate);
if (!inpf){
cout << "Файлды мəлімет оқу үшін ашу мүмкін емес";
return 1;
}
ofstream f;
f.open("output.txt"); // open əдісін қолдану
if (!f){
cout << "Файлды мəлімет жазу үшін ашу мүмкін емес";
return
1;
}
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
—
шығыс тіркестік ағымдары;
Достарыңызбен бөлісу: