Лабораторная работа 4.3. Файлы

Цель. Получить практические навыки работы с файлами. Научиться записывать информацию в файл, считывать информацию из файла, обрабатывать файлы, реализовывать произвольный доступ к файлу.

ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ

Задача 1. Введите строку и запишите ее в файл наоборот.

#include <string>

#include <iostream>

#include <fstream>

using namespace std;

int main() {

ofstream myFile("stroka.txt");

string str;

cin >> str;

int l=str.length();

for (int i=0; i<l; i++) {

myFile.put(str[l-i-1]);

}

myFile.close();

return 0;

}

Задача 2. Напишите программу, которая принимает с клавиатуры название файла, в котором записаны несколько чисел, разделенных либо пробелом, либо переводом на новую строку, и вычисляет их среднее арифметическое.

#include <string>

#include <iostream>

#include <fstream>

using namespace std;

int main() {

string filename;

cin >> filename;

ifstream myFile(filename);

float sum=0;

int n=0;

while (!myFile.eof()) {

float x;

myFile >> x;

sum+=x;

n++;

}

myFile.close();

cout << "sum/n=" << sum/n << endl;

system("pause");

return 0;

}

Задача 3. Введите название файла и определите количество цифр в нем.

#include <string>

#include <iostream>

#include <fstream>

using namespace std;

bool isDigit(char symbol) {

string dgts = "0123456789";

for (int i=0; i<dgts.length(); i++) {

if (symbol == dgts[i]) {

return true;

}

}

return false;

}

int main() {

string filename;

cin >> filename;

ifstream myFile(filename);

int n_digits=0;

while (!myFile.eof()) {

char symbol = -1;

myFile >> symbol;

if (isDigit(symbol)) {

n_digits++;

}

}

myFile.close();

cout << "kol cifr=" << n_digits << endl;

system("pause");

return 0;

}

Задача 4. Введите название файла и выведите его на экран, исключая цифры.

#include <string>

#include <iostream>

#include <fstream>

using namespace std;

bool isDigit(char symbol) {

string dgts = "0123456789";

for (int i=0; i<dgts.length(); i++) {

if (symbol == dgts[i]) {

return true;

}

}

return false;

}

int main() {

string filename;

cin >> filename;

ifstream myFile(filename);

int n_digits=0;

while (!myFile.eof()) {

char symbol = -1;

symbol = myFile.get();

if (!isDigit(symbol)) {

cout << symbol;

}

}

myFile.close();

system("pause");

return 0;

}

Задача 5. Введите название файла и перепишите его содержимое в другой файл, дублируя все цифры.

#include <iostream>

#include <fstream>

using namespace std;

bool isDigit(char symbol) {

string dgts = "0123456789";

for (int i=0; i<dgts.length(); i++) {

if (symbol == dgts[i]) {

return true;

}

}

return false;

}

int main() {

ifstream inFile("in.txt");

ofstream outFile("out.txt");

int n_digits=0;

while (!inFile.eof()) {

char symbol = inFile.get();

outFile.put(symbol);

if (isDigit(symbol)) {

outFile.put(symbol);

}

}

inFile.close();

outFile.close();

return 0;

}

ЗАДАЧИ

1. Введите сообщение и запишите его в файл.

2. Введите число N и запишите в файл N нулей.

3. Введите число N и запишите в файл N первых чисел Фибоначчи.

4. Введите число N и запишите в файл N первых степеней числа 2.

5. Введите число N и запишите в файл N случайных чисел.

6. Создайте файл, в котором записаны несколько целых чисел через пробел. Напишите программу, которая считывает числа из файла и вычисляет их сумму.

7. Создайте файл, в котором записаны несколько целых чисел через пробел. Напишите программу, которая определяет максимальное и минимальное число в нем.

8. Создайте файл, в котором записаны несколько целых чисел через пробел. Напишите программу, которая проверяет, есть ли в этом файле повторяющиеся числа.

9. Создайте файл, в котором записаны несколько целых чисел через пробел. Напишите программу, которая определяет количество четных чисел в этом файле.

10. Создайте файл, в котором записаны несколько чисел через пробел. Напишите программу, которая определяет количество чисел, не попадающих в отрезок [10, 20].

11. Введите название файла и выведите его содержимое на экран.

12. Введите название файла и выведите его содержимое на экран, исключая пробелы и переводы на новую строку.

13. Введите название файла и определите количество символов в нем.

14. Напишите программу, которая определяет количество латинских букв в файле.

15. Напишите программу, которая проверяет, есть ли в заданном файле одинаковые символы, идущие подряд.

16. Проверьте, есть ли в заданном файле русские буквы.

17. Проверьте, есть ли в заданном файле латинские буквы.

18. Проверьте, ли в заданном файле цифры.

19. Проверьте, есть ли в файле повторяющиеся символы.

20. Перепишите содержимое одного файла в другой.

21. Перепишите содержимое одного файла в другой, дублируя все символы.

22. Перепишите содержимое одного файла в другой, дублируя все цифры.

23. Перепишите содержимое одного файла в другой, дублируя латинские буквы.

24. Перепишите содержимое одного файла в другой, исключая все латинские гласные буквы.

25. Перепишите содержимое одного файла в другой, исключая все русские буквы.

26. Перепишите содержимое одного файла в другой, дублируя все символы.

27. Перепишите содержимое одного файла в другой, дублируя латинские гласные.

28. Выведите содержимое файла наоборот (начиная с конца).

29. Напишите программу, которая сообщает символ, расположенный в файле на позиции, номер которой ввел пользователь.

30. Определите наиболее часто встречающийся символ в заданном файле.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: