Цель. Получить практические навыки работы с файлами. Научиться записывать информацию в файл, считывать информацию из файла, обрабатывать файлы, реализовывать произвольный доступ к файлу.
ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ
Задача 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. Определите наиболее часто встречающийся символ в заданном файле.