|
Программирование >> Расширенная версия языка c++
Примеры * 1. В представленной ниже программе создается файл для вывода, туда записывается информация, и файл закрывается. Затем файл снова открывается уже в качестве файла для ввода, и записанная ранее информация оттуда считывается: tfinclude <iostream> ttinclude <fstreain> using namespace std; int main () i ofstream fout( test ); создание файла для вьшода if(!fout) { cou Файл открыть невозмоя:но\п ; return 1; fout Привет!\n ; fout 100 hex 100 endl; fout.close(); ifstream fin ( test ); открытие файла для ввода - if(]fin) { cou::-: Файл открыть невоэможноХп ; return 1; char str[80] ; int i; cout str 1 endl; fin. close () ; return ; . наоборот, любой файл, содержимое которого считывается с помощью оператора , должен быть файлом с отформатированным текстом. То есть, как правило, файлы с отформатированным текстом, которые вы будете обрабатывать, используя операторы и , следует открывать в текстовом, а не в двоичном режиме. Двоичный режим больше подходит для неотформа-тированных файлов, о которых в этой главе будет рассказано позже. ftinclude <iostream> л?-?. . Л #include <fstream> using namespace std; . . int mainjint argc, char *argv[]) . , , if(argc! = 2) { cout Введете <У1МЯ фаЙла>\п ; return 1; ... } . . ofstream out (argv[l] ) ; файл для. вывода if(lout) { cout Файл открыть невозможно\n ; return 1 ; ) ,. . - char str[80] ; cou Вводите строки; для окончания ввода введите $\п ; do { cout : ; cin str; out << str endl; } while (*Str != 5 ) ; out. close () ; -. . , return 0; j ... . . 3. В следующей программе копируется текстовый файл и при этом пробелы превращаются в символы [. Обратите внимание, как для контроля кониа файла для ввода используется функция eof(). Также обратите внимание, как После того как программа завершится, проанализируйте содержимое файла test. Оно будет следующим: Привет! ,\. 100 64 / \ Как уже установлено, при использовании операторов и для реализаЦИИ файлового ввода/вывода, информация форматируется так л:-, как если бы она находилась на экране. 2. Рассмотрим другой пример файлового ввода/вывода. В этой программе введенные с клавиатуры строки считываются и записываются в файл. Программа завершается при вводе знака доллара $ в качестве первого символа строки. Для использования программы в командной строке задайте имя файла для вывода. fin.close() ; fout.close(); return 0; 4. Между исходной библиотекой ввода/вывода C++ и библиотекой ввода/вывода современного стандарта Standard C++ имеются некоторые отличия, которые необходимо учитывать при модернизации старых программ. Во-первых, в исходной библиотеке ввода/вывода C++ у функции ореп() имеется третий параметр, задающий режим защиты файла. По умолчанию это режим обычного файла. В современной библиотеке C++ указанный параметр не поддерживается. Во-вторых, при работе со старой библиотекой для открытия потока ввода/вывода fstream необходимо явно указать значения режима открытия файла поток ввода fin воспринимает сброс флага skipws. Это предотвращает пропуск пробелов в начале строк. Превращение пробелов в вертикальные линии ftinclude <iostreajii> iii . ttinclude <fstream> using namespace std; in (int argc, char *argv[]) t . :.. if(argc!=3) { - - cout < Преобразование <файл Бвола> <файл выБОда>\п ; return 1 ; , } ifstream fin(argv[i] ) ; открытие файла для ввода ofstream fout (argv[2]) ; создание файла для вывода if(lout) { . . cou Файл открыть невозможно\п ; return 1; } if(!fin) { cou Файл открыть .невозшожно\п ; . return 1; char ch; fin.unsetf(ios: ;skipws); не пропускать пробелы , - ., while (!fin,eof() ) { fin ch; if(ch= ) ch = I if( I fin.eof 0 ) fout ch;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |