- •Int fact(int n)
- •Int fact(int n)
- •Void main()
- •Void main()
- •Void main()
- •Int AkkR(int m, int n);
- •Int main()
- •Int AkkR(int m, int n)
- •Int main()
- •Int smacc(int, int);
- •Int test(char *s, char *r)
- •Void main() { Stepp(""); }
- •Int step(int X, int y)
- •If (step(X-1, y))
- •If (step(X, y-1))
- •Void main(void)
- •Void main()
- •Int rings;
- •Init(rings);
- •Void convert (int z)
- •Void f(struct man *q)
- •Int mark[4];
- •Void main()
- •Void proc(man *p)
- •Void main()
- •Void main()
- •Int telephon;
- •Void main()
- •Void fNumber(number * const doc)
- •Void main()
- •Int main()
- •Void main()
- •Void main()
- •Void main()
- •Int fgets (char *s, int m, file *f);
- •Int fputs (char *s, file *f);
- •Void main()
- •Int fread( void *ptr, int size, int n,
- •Int fwrite( void *ptr, int size, int n,
- •Int rate;
- •Void main()
- •Int fseek(file *fp, long pos, int mode);
- •Void main()
- •Int np, n, I; long p[5]; char str[80];
- •Void main()
- •Int main() {
- •Int fread (void *buf, int size, int nrec, file *fd);
- •Int fwrite (void *buf, int size, int nrec, file *fd);
- •Int main()
- •Int main()
- •Infl.Open(“a.Txt”);
- •If (!infl) … //открытие успешно
- •Int main()
- •Inout.Seekg(0);
- •Int main()
- •Void main()
- •Void main()
- •Void main(void)
- •Ifstream prm2("a.Txt") ;
- •If (prm2.Fail())
Int main()
{ using namespace std;
char p[100];
fstream inout;
inout.open ("a.txt", ios_base::in | ios_base::out | ios_base:: trunc); // Открыть файл для чтения и для записи (если файл не существует, он будет создан), уничтожить содержимое файла, если файл сущ.
inout<<"This is string"<<endl; // вывод в файл
inout.seekg(0); //установка на начало
inout.getline(p, 50); //чтение строки из файла
Inout.Seekg(0);
cout<<endl<< inout.rdbuf(); //на экран
inout.close(); //закрыть поток
}
Работа с классом ofstream
Если файл будет использоваться только для вывода, определяется объект класса ofstream.
Пример
#include <fstream>
using namespace std;
Int main()
{ ofstream outf; //переменная типа ofstream
outf.open("a.txt"); //открытие файла
if (outf == NULL) return 0; //выход, если не открывается файл
for (int i = 0; i < 2; i++)
outf << "string" << i << endl; //вывод в файл
outf.close(); //закрытие файла
}
Функция put() используется для вывода символа в выходной поток.
Функция-член write() класса ostream дает альтернат. метод вывода массива символов. Вместо того чтобы выводить символы до завершающего нуля, она выводит указанное число символов, включая и внутренние нули, если таковые имеются:
ostream& write(const char* buffer, int size); записывает в ostream содержимое буфера buffer количеством size символов. Буфер записывается без форматирования.
Работа с классом ifstream
Чтобы открыть файл только для чтения, применяется объект класса ifstream.
Сигнатура getline(): getline (char * buffer, streamsize size, char delimiter='\n')
Парной для функции write() из класса ostream явл. функция read() из класса istream с сигнатурой: read ( char* buffer, streamsize size );
читает size соседних байт из входного потока и помещает их, начиная с адреса buffer.
Пример . Прочитать содержимое предварительно созданного файла "a.txt" с некоторым содержимым.
#include <iostream>
#include <fstream>
using namespace std;
Void main()
{ char c;
ifstream in;
in.open("a.txt");
while (!in.eof())
{ c = in.peek(); //считывание символа
if (c == 'A')
{ int i = in.tellg();
in.seekg( ++i);
}
in.get(c);
cout<<c;
}
in.close();
}
Функция int peek() читает символ.
Примеры
=======================================================================
Программа создает объект типа ofstream и выводит неск. строк текста в файл А.DAT.
#include <fstream>
using namespace std;
void main(void)
{ ofstream prm1("A.DAT");
prm1 << "Text1" << "Text2" << endl;
prm1 << "Text3" << endl;
prm1 << "Text4" << endl;
}
================================
Программа открывает файл A.DAT, кот. создан с помощью предыд. программы, читает его и отобр. первые три элемента.
#include <iostream>
#include <fstream>
using namespace std;
void main(void)
{ ifstream prm2("A.DAT") ;
char one[64], two[64], three[64];
prm2>> one;
prm2>> two;
prm2>> three;
cout << one << endl;
cout << two << endl;
cout << three << endl;
}
===========================
Программа использует функцию getline для чтения всех трех строк файла A.DAT.
#include <iostream>
#include <fstream>
using namespace std;
void main(void)
{ ifstream prm3("A.DAT");
char one[64], two[64], three [64] ;
prm3.getline(one, sizeof(one));
prm3.getline(two, sizeof(two));
prm3.getline(three, sizeof(three)) ;
cout << one << endl;
cout << two << endl;
cout << three << endl;
}
=============================
Программа читает файл по одному символу за один раз, используя функцию get, пока не встретит конец файла:
#include <iostream>
#include <fstream>
using namespace std;
void main(void)
{ ifstream prm4("A.DAT");
char letter;
while (! prm4.eof()) //достигнут ли конец файла?
{ letter = prm4.get();
cout << letter;
}
}
===============================
Исп. функция eof для чтения содержимого файла A.DAT.
#include <iostream>
#include <fstream>
using namespace std;
void main(void)
{ ifstream prm5("A.DAT");
char line[64];
while (! prm5.eof())
{ prm5.getline(line, sizeof(line));
cout << line << endl;
}
}
=============================
Читается содержимое файла по одному слову за один раз.
#include <iostream>
#include <fstream>
using namespace std;
void main(void)
{ ifstream prm6("A.DAT");
char word[64] ;
while (! prm6.eof())
{ prm6 >> word;
cout << word << endl;
}
}
Если программа должна вводить или выводить такие данные, как структуры или массивы, то можно использовать методы read и write.
Функция gcount() возвращает число байт, прочитанных при последнем обращении к read().
Пример.
1 вариант
#include <iostream>
#include <fstream>
using namespace std;
struct mystruct {
long i;
char buf[255];
double d;
};
int main()
{ setlocale(LC_ALL,"Russian");
const char *FName = "A.bin";
mystruct X;
X.i = 10; //запись значения в поле i
X.d = 2; //запись значения в поле d
strcpy_s(X.buf, "кафедра ИСиТ"); //запись текста в поле buf
ofstream ft(FName, ios::binary | ios::out); //открытие файла для записи
ft.write((char*)&X, sizeof X); //запись структуры
ft.close();
ifstream in(FName, ios::binary|ios::in);
in.read((char*)&X, sizeof X); //чтение структуры
in.close();
cout<<X.buf<<"\n";
return 0;
}
2 вариант
int main()
{ setlocale(LC_ALL,"Russian");
const char *FName = "A.bin";
mystruct X;
X.i = 10; X.d = 2;
strcpy_s(X.buf, "кафедра ИСиТ");
fstream ft(FName, ios::binary | ios::out |ios::in);
ft.write((char*)&X, sizeof X);
ft.seekg(0);
ft.read((char*)&X, sizeof X);
ft.close();
cout<<X.i<<"\n";
cout<<X.buf<<"\n";
cout<<X.d<<"\n";
return 0;
}
Русский шрифт
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
struct St
{ char ab[30];
};