Мнемоніка режиму береться з перерахованого значення open_mode у ios:
class ios {
public:
enum open_mode { in, out, app, ate, nocreate, noreplace };
};
Оператор
ofstream ofile("data",ios::app|ios::nocreate);
спробує відкрити файл DATA на висновок у режимі append; якщо файл не існує, це призведе до невдачі. Інформація про цю невдачу буде позначена станом помилки ofile. У випадку вдалого завершення потік ofile буде доданий до файлу DATA. Клас fstream (похідний від двох класів ifstream і ofsrtream) може використовуватися для створення файлів, що одночасно дозволяють і запровадження, і висновок:
fstream inout("data:,ios::in|ios::out);
inout << i;
...
inout >> j;
Для визначення поточної позиції "get" або поточної позиції "put" файлу можна скористатися функціями tellg і tellp; вони визначають положення в потоці, де буде виконана така операція висновку або запровадження:
streampos cgp = inout. tellg(); // cgp - це поточна позиція get
де streampos це typedef у fstream. h. Функції-компоненти seekg і seekp можуть скидати значення поточної позиції get і put:
inout. seekg(cp); // установка в cp поточної позиції "put"
Варіанти seekp і seekg дозволяють одержати шукані позиції у відносних зсувах:
inout. seekg(5,ios::beg); // переміщення cp на 5 байт від початку
inout. seekg(5,ios::cur); // переміщення cp на 5 байт вперед
inout. seekp(5,ios::end); // переміщення cp на 5 байт до кінця
Вам може знадобитися роздрукувати і вивчити комменовані файли заголовка, щоб дізнатися, як взаємозалежні різноманітні класи потоків і як об'являються їхні функції компоненти.
При використанні бібліотеки класів С++ операції відкриття, створення і закриття, виконуються при створенні об'єктів вихідного (вхідного) файлового потоку. Наприклад:
#include <iostream. h>
#include <fstream. h>//ofstream
#include <stdlib. h>//містить функцію exit
int main ()
{char sim;
ofstream myfile ("d:\oop\myfile. txt", ios:: out);//створюється файл, старий стирається
if (! myfile)
{
cerr<<" помилка відкриття myfile. txt'<<endl;
exit (1);
}
for (int i=1; i<10; i++) {
cout<<'введіть символ'<<endl;
cin>>sim;
myfile. put (sim);}
myfile<<endl;
return 0;
}
#include <iostream. h>
//#include <fstream. h>//ofstream
#include <fstream. h>
#include <stdlib. h>//містить функцію exit
int main ()
{char sim;
ifstream myfile ("d:\oop\myfile. txt", ios:: in);
if (! myfile)
{
cerr<<" помилка відкриття myfile. txt"<<endl;
exit (1);
}
int nsim=0, kolstr=0;
while (myfile. get (sim)) {
if (sim==char ("\n)")
kolstr++;
else
nsim++;
cout. put (sim);}
cout<<endl<<”kolstr=”<< kolstr<<”nsim=”<<nsim<<endl;
cin>>nsim;
return 0;
}
#include <iostream. h>
#include <fstream. h>//ofstream
#include <stdlib. h>//містить функцію exit
int main ()
{char sim;
ofstream myfile ("d:\oop\myfile. txt", ios:: in);//відкривається файл для читання
if (! myfile)
{
cerr<<" помилка відкриття myfile. txt"<<endl;
exit (1);
}
for (int i=1; i<10; i++) {
cout<<'введіть символ'<<endl;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.