Вы находитесь на странице: 1из 4

Отчет по практической работе №16

Файловый тип данных


Цель: рассмотреть процесс создания, отладки и тестирования программ c
использованием файлового типа данных.
Задание 1. Составить программу в соответствии с указанным
преподавателем вариантом.
#include "stdafx.h"
#include <iostream>
#include <locale>
#include <fstream>

using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
srand((unsigned)time(NULL));
ofstream fout1("file1.txt");
ofstream fout2("file2.txt");
int N, p = 1;
cout << "Введите количество чисел: "; cin >> N;
int* A = new int[N];
//Запись в файл file1.txt
for (int i = 0; i < N; i++)
{
A[i] = 1 + rand() % 10; //Случайные числа от 1 до 10
fout1 << A[i] << " ";
}
//Запись в файл file2.txt
for (int i = 0; i < N; i++)
{
p *= A[i];
fout2 << p << " ";
}
delete[] A;
fout1.close();
fout2.close();
system("pause");
return 0;
}
Задание 2. Из внешнего файла, содержащего исходные данные,
переписать в другой файл и распечатать:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

struct sotrudnik
{
string familia;
string godpostuplenia;
};

int main()
{
setlocale(LC_ALL, "Russian");
system("chcp 1251");
int N;
cout << "Создание базы:" << endl;
cout << "Введите количество сотрудников: "; cin >> N;

sotrudnik* s1 = new sotrudnik[N]; // создание базы


ofstream fout("read.txt");
for (int i = 0; i < N; i++)
{
cout << "Введите фамилию " << i+1 << " сотрудника "; cin >> s1[i].familia;
cout << "Введите год поступления " << i + 1 << " сотрудника "; cin >>
s1[i].godpostuplenia;
fout << s1[i].familia << " " << " " << s1[i].godpostuplenia << "\n"; // запись в файл
read.txt
}
fout.close();
delete[] s1;

cout << "Результат:" << endl;


string s2;
ifstream read("read.txt");
ofstream write("write.txt");
for (int i = 0; i < N; i++)
{
getline(read, s2, '\n'); // считывание из файла построчно до символа переноса
строки

if (s2[0] == char(-61) || s2[0] == char(-62)) // если строка начинается с В или Г


{
cout << s2 << endl; // вывод
write << s2 << "\n"; // записываем в новый файл в файл write.txt
}
}
write.close();
read.close();

system("pause");
return 0;
}

Задание 3. Составьте программу для обработки файла.


Дан текстовой файл. Удалить из него все лишние пробелы, оставив между
словами не более одного пробела. Результат поместить в новый файл.

#include "stdafx.h"
#include <iostream>
#include <string>
#include <regex>
#include <fstream>
using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
system("chcp 1251");
string buf;
ifstream read("read.txt");
getline(read, buf, '\0');// считали весь файл read.txt
cout <<"Исходный файл:\n" << buf << endl;
read.close();
buf = regex_replace(buf, regex("[ ]+"), " "); // удаление лишних пробелов путем замены
cout << "Отредактированный файл:\n" << buf << endl;
ofstream write("write.txt");
write << buf; // записываем в новый файл в файл write.txt
write.close();
system("pause");
return 0;
}

Вывод: Мы рассмотрели процесс создания, отладки и тестирования


программ c использованием файлового типа данных.