7. Строковые классы Си++. Потоки ввода-вывода (Семинары), страница 2
Описание файла
Файл "7. Строковые классы Си++. Потоки ввода-вывода" внутри архива находится в папке "Семинары". PDF-файл из архива "Семинары", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
По умолчанию - вывод всего значения.// Влияет только на ближайшую операцию вывода:smanip_int setw(int _n);// Установка точности вывода чисел плавающей арифметики// в n чисел после запятой:smanip_int setprecision(int n);Пример:cout << "Int: " << setfill('0') << setw(8) << 123 << "!" << endl;cout << setfill(' ') << "Float: " << setprecision(5) << M_PI << endl;Результат:Int: 00000123!Float: 3.14159В этом же файле вводятся все необходимые декларации, необходимые для написанияпрограммистом своих манипуляторов.Файловый ввод-выводПомимо предопределенных потоков, программист может заводить свои потоки вводавывода, ассоциированные как с уже существующими потоками, так и с файламиоперационной системы или со строками в оперативной памяти компьютера.14.11.20116Кафедра Компьютерных методов физики: программирование, первый курс, второй семестрДля того, чтобы ассоциировать некоторый поток с файлом нужно выполнить следующиедействия:#include <fstream>// Заводим объект класса filebuf.filebuf outfile;// Открываем файл, режим - записьif( !outfile.open( "c:\\filename.txt", ios::out ) ) {cerr << "Файл не открыт!";abort();}// Заводим объект класса ostream, ассоциированный с outfileostream cdst(&outfile);cdst << "Ready"; // Осуществляем вывод.Открытый файл будет закрыт в момент вызова деструктора объекта cdst.Для открытия входного потока необходимо указать режим ios::in при открытииfilebuf.
Для открытия файла на чтение-запись режимы открытия можно комбинировать:outfile.open( "c:\\filename.txt", ios::out | ios::out )Прочие режимы открытия файла:appatetrunkbinaryперед каждой операцией вывода позиционироваться в конец потока;позиционироваться в конец потока в момент создания объекта filebuf;удалить содержимое открываемого файла при его открытии, сделать файлпустым;установить бинарный режим чтения/записи, аналогичный бинарному режимуфункций чтения/записи языка C: без трансляции \n <-> \r\n.Существует конструктор класса filebuf, которому можно указать дескриптор открытогофайла:filebuf::filebuf(int hFile);Кроме того, есть возможность использовать специальные классы для файлового вводавывода, описанные в файле <fstream>:#include <fstream>ifstream fmyin("c:\\myfile1.dat" );ofstream fmyout("c:\\myfile2.dat" );fstream fmyinout("c:\\myfile3.dat" );// Поток ввода// Поток вывода// Поток ввода-выводаВ последнем случае второй аргумент (режим открытия для чтения-записи) подставлен поумолчанию, но, если нужно, его можно указать явно:fstream fmyout2("c:\\myfile3.dat", ios::out ); // Только вывод14.11.20117Кафедра Компьютерных методов физики: программирование, первый курс, второй семестрЕстественно, обязательно нужно проверить – открылся ли файл или произошла ошибка:if ( fmyin.is_open() ) {int x, y;fmyin >> x >> y;............}Потоковым вводом-выводом можно пользоваться и для чтения/записи форматированныхстрок.
Для этого объект специального класса ассоциируется со строкой:#include <strstream>char A[1024];istrstream smyin( A, 1024 );ostrstream smyout( A, 1024 );strstream smyinout( A, 1024, ios::in | ios::out );// Поток ввода// Поток вывода// Поток ввода-выводаsmyout << "PI= " << 3.14159 << endl << ends;В заголовочном файле <sstream> содержатся объявления аналогичных потоков вводавывода для класса string.14.11.20118Кафедра Компьютерных методов физики: программирование, первый курс, второй семестр1.
ВариантСоздать функцию подсчета суммы чисел в файле. Функция принимает в качествепараметра имя файла. Числа отделены друг от друга, словами, буквами, символами,знаками табуляции.Файл должен считываться по строкам с использованием функций библиотеки <fstream>, строки должнызаписываться в контейнер string библиотеки STL.Пример:строкавфайлеможетвыглядетьследующимобразом:«10sdada350re20sd100%dasd^#^#1sdas15», сумма в ней чисел соответственно равна 496.2. ВариантСоздать функцию, удаляющую комментарии из файлов Си и Си++. Функция принимает вкачестве параметра имя входного и выходного файлов и удаляет из файла все частистроки, следующие за символами «//», и все куски теста заключенные в символы«/*…*/», результат записывается в выходной файл.Файл должен считываться по строкам с использованием функций библиотеки <fstream>, строки должнызаписываться в контейнер string библиотеки STL.3.
ВариантСоздать функцию, которая зашифровывает файл на основании файла-ключа. Функцияпринимает в качестве параметров имена входного файла, файла-ключа и выходногофайла. Функция может реализовать шифр, например, выдавая положение букв исходногофайла в файле-ключе.Работа с файлом должна осуществляться с помощью функций библиотеки <fstream>.4. ВариантСоздать функцию, которая расшифровывает зашифрованный файл на основании файлаключа. Функция принимает в качестве параметров имена входного файла, файла-ключа ивыходного файла. Функция может реализовать расшифровку, например, выдавая буквы,координаты которых указаны в файле-ключе.Работа с файлом должна осуществляться с помощью функций библиотеки <fstream>.5. ВариантСоздать функцию, которая должна считать массив чисел из файла, отсортировать изаписать в другой файл.
Функция принимает имена входного и выходного файлов.Работа с файлом должна осуществляться с помощью функций библиотеки <fstream>. Значениясчитываются в STL контейнер типа vector или list.6. ВариантСоздать функцию, которая транспонирует матрицы. Матрица считывается из текстовогофайла и записывается в другой файл. Размеры матрицы заранее не известны. Функцияпринимает имена входного и выходного файлов.Работа с файлом должна осуществляться с помощью функций библиотеки <fstream>.
Значениясчитываются в STL контейнер типа vector или list.7. ВариантСоздать функцию, которая считывает из файла числовые данные, записанные в 2 колонки,и переписывает их в другой файл в одну строку через запятую в обратном порядке (то есть– снизу вверх). Функция принимает имена входного и выходного файлов.Файл должен считываться по строкам с использованием функций библиотеки <fstream>, строки должнысчитываться в контейнер string библиотеки STL.14.11.20119Кафедра Компьютерных методов физики: программирование, первый курс, второй семестр8.
ВариантСоздать функцию поиска подстроки в текстовом файле. Функция принимает имя входногофайла и искомую подстроку.Файл должен считываться по строкам с использованием функций библиотеки <fstream>, строки должнызаписываться в контейнер string библиотеки STL.9. ВариантСоздать функцию, убирающую из текстового файла все цифры. Функция принимаетимена входного и выходного файлов.Файл должен считываться по строкам с использованием функций библиотеки <fstream>, строки должнызаписываться в контейнер string библиотеки STL.10. ВариантСоздать функцию, подсчитывающую количество слов в текстовом файле. Функцияпринимает имя входного файла и возвращает количество слов.Файл должен считываться по строкам с использованием функций библиотеки <fstream>, строки должнызаписываться в контейнер string библиотеки STL.11.
ВариантСоздать функцию, подсчитывающую количество букв в текстовом файле. Функцияпринимает имя входного файла и возвращает количество букв.Файл должен считываться по строкам с использованием функций библиотеки <fstream>, строки должнызаписываться в контейнер string библиотеки STL.12. ВариантСоздать функцию обрабатывающую текстовый файл.
В файле имеется матрицапроизвольной размерности. Функция считывает эту матрицу и записывает в выходнойфайл ее строки, отсортированные по возрастанию значений в первой колонке. Функцияпринимает имена входного и выходного файлов.Работа с файлом должна осуществляться с помощью функций библиотеки <fstream>. Значениясчитываются в STL контейнер типа vector или list.13. ВариантСоздать функцию обрабатывающую текстовый файл. В файле имеется массивx-координат, функция считывает эти значения и записывает в выходной файл x и log8(x)в 2 колонки.