Реферат Курсовая Конспект
Работа с файловыми потоками в С++. Текстовые файлы. - раздел Программирование, Лабораторная Работа №13 Работа С Файловыми Потоками В С++. Текст...
|
Лабораторная работа №13
Работа с файловыми потоками в С++.
Текстовые файлы.
Цель работы: получить практические навыки решения задач с использованием текстовых файлов на языке С++.
Теоретические сведения
Пример 13.2.
# include <fstream>
# include <iostream>
# include <string>
using namespace std:
void main()
{ string guote = “Зорко одно лишь сердце. Самого главного глазами не увидишь. А. де Сент Экзюпери”;
ofstrem out_file (“Out_file.txt”, ios::out);
if (! out_file) { cerr<<”Error output file”<<endl;
exit(1);
}
for (int i=0; i<guote.size(); i++)
out_file.put(guote[i]);
cout<<”Конец записи”<<endl;
}
Построчное чтение файла.
Обычно построчное чтение и запись файлов работают быстрее посимвольных действий. Для чтения строки из файла воспользуемся функцией getline(), которая является методом класса ifstream. Функция читает строку (в том числе и разделители), пока не встретит символ новой строки ‘n’, помещая ее в буфер (первый аргумент функции). Максимальный размер буфера задается как второй аргумент функции.
Пример 13.3.
# include <fstream>
# include <iostream>
using namespace std:
void main()
{ const int LEN=80;
char BUF[LEN];
ifstream in_file (“Input_file.txt”, ios::in);
if (! in_file) { cerr<<”Error input file”<<endl;
exit(1);
}
while (in_file) { in_file.getline(BUF,LEN);
cout<<BUF<<endl;
}
}
Построчная запись текста.
Пример 13.4.
# include <fstream>
# include <iostream>
# include <string>
using namespace std:
void main()
{ ofstrem out_file (“Out_file.txt”, ios::out);
if (! out_file) { cerr<<”Error output file”<<endl;
exit(1);
}
out_file<<”Я не знаю, где встретитьсяn”;
out_file<<”Нам придется с тобой,n”;
out_file<<”Глобус крутится-вертится,n”;
out_file<<”Словно шар голубойn”;
}
Записываемые строки являются не объектами класса string, а строки типа *char, завершающиеся символом ‘n’.
Имена файлов и аргументы командной строки
В приведенных выше примерах были использованы файлы с фиксированными именами. Однако более удобны программы, в которых имена файлов для чтения или записи можно ввести с клавиатуры или задать в качестве аргументов командной строки.
Пример 13.5.
# include <fstream>
# include <iostream>
# include <stdlib.h>
using namespace std;
int main (int argc, char *argv[])
{ char I;
char c;
if (argc<=1) { cout<<”usage: primer.exe filename1 [filename2]”;
exit(1);
}
ifstream file;
for(I=1;I<argc-1;I++)
{ if(!file.open(argv[I])) { cout<<”Bad file”;
exit(1);
};
cout<<”file “<<argv[I]<<endl;
while(file)
{ c=file.get();
cout<<c;
};
file.close();
}
}
Для работы с файловыми потоками любого из стандартных типов, нужно перегрузить операторы ввода и вывода под требуемый тип данных или воспользоваться шаблоном класса, задаваемым с помощью ключевого слова template.
Лабораторное задание.
Для выполнения лабораторной работы необходимо составить программу согласно своему варианту задания.
Варианты заданий
Номер варианта | Задание |
1, 14 | Дан файл f, компоненты которого являются целыми числами. Записать в файл g, компоненты файла f, исключив повторные вхождения чисел. |
2, 15 | Дан файл f, компоненты которого являются действительными числами. Найти:
|
3, 16 | Дан символьный файл f. Подсчитать число вхождений в файл каждой из букв a, b, c, d, e, f. Результат вывести в файл g в виде таблицы с комментариями. |
4, 17 | Дан файл f, компоненты которого являются целыми числами. Записать в файл g все четные числа исходного файла, в файл h – все нечетные. Порядок следования чисел сохраняется. Записать в файл g и h комментарии. |
5, 18 | Дан текстовый файл, содержащий программу на языке С. Проверить эту программу на соответствие числа открывающих и закрывающих фигурных скобок. |
6, 19 | Дан символьный файл f. Найти и записать в файл g самое длинное слово файла f, снабдив его комментарием. |
7, 20 | Дан файл f, компоненты которого являются целыми числами. Получить в файле g все компоненты файла f:
|
8, 21 | Дан файл f. Создать два файла, записав в первый из них все четные числа, расположив их в порядке возрастания, а во второй – все нечетные, расположив их в порядке убывания. |
9, 22 | Дан текстовый файл f. Переформатировать исходный файл, разделяя его на строки так, чтобы каждая строка содержала столько символов, сколько содержит самая короткая строка исходного файла. |
10, 23 | Дан файл f. Создать два файла, записав в первый из них среднее геометрическое всех четных чисел, а во второй – среднее арифметическое всех нечетных чисел. |
11, 24 | Дан числовой файл f. Выбрать все значения, которые делятся нацело на 2 и 4, но не делятся на 6. Записать эти значения в файл g, а все остальные – в файл h. |
12, 25 | Дан текстовый файл f. Определить, являются ли первые два символа цифрами и если да, то четно ли это число. Записать его в файл g, если оно четно и в h ,если оно нечетно. |
13, 26 | Дан текстовый файл f. Создать новый файл g и переписать в него исходный в обратном порядке, разделив пробелами. |
– Конец работы –
Используемые теги: работа, файловыми, потоками, Текстовые, файлы0.061
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Работа с файловыми потоками в С++. Текстовые файлы.
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов