Главная » Просмотр файлов » Г. Шилтд - Самоучитель C++ (PDF)

Г. Шилтд - Самоучитель C++ (PDF) (1114887), страница 82

Файл №1114887 Г. Шилтд - Самоучитель C++ (PDF) (Г. Шилтд - Самоучитель C++ (PDF)) 82 страницаГ. Шилтд - Самоучитель C++ (PDF) (1114887) страница 822019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 82)

Пользовательская функция ввода — это перегруженная оператор-функция operator»(),которая принимает данные класса из потока ввода.5. ^include <iostream>using namespace std;class date {char d[9]; // дата хранится в виде строки: mm/dd/yypublic:friend ostream &operator« (ostream sstream, date ob) ;friend istream ^operator» (istreara sstream, date &ob) ;};ostream &operator« (ostream sstream, date ob){stream « ob.d « '\n';return stream;istream ^operator» (istream fistream, date fiob){cout « "Введите дату (mm/dd/yy) : ";stream » ob.d;return stream;int mainO{date ob;cin » ob;cout « ob;return 0;6. Для использования манипуляторов с параметрами необходимо включить впрограмму заголовок <iomanip>.7. Встроенными потоками являются потоки:cincoutcereclog594Самоучитель C++Упражнения9.11. // Представление времени и даты^include <iostream>tinclude <ctime>using namespace std;// Манипулятор вывода времени и датыostreara &td(ostream &stream){struct tm *localt;time_t t;t = time(NULL);localt = localtime(St);stream «asctime (localt) « endl;return stream;}int main{){cout « td « '\n';return 0;2.

^include <iostream>using namespace std;// Установка шестнадцатеричного вывода с символом X//в верхнем регистреostrearn &sethex (ostream Sstream)istream.unsetf(ios::dec | ios::oct);stream.setf(ios::hex I ios::uppercase | ios::showbase);return stream;}// Сброс флаговostream sreset(ostream fistream){stream, unsetf (ios : :hex I ' - "- • : uppercase I ios: : showbase) ;stream.setf(ios::dec);return stream;}Приложение В. Ответы на вопросы и решений упражненийint main (){cout « sethex « 100 « '\n';cout « reset « 100 « '\n';return 0;3.

^include <iostream>using namespace std;// Пропуск 10 символовistream sskipchar(istream «stream)int i;char c;for{i=0; i<10; i++) stream » c;return stream;int main()char atr[80];cout « "Введите несколько символов: ";cin » skipchar » str;cout « str « '\n';return 0;}9.21. // Копирование файла и вывод числа скопированных символовttinclude <iostream>^include <fstream>using namespace std;int main{int argc, char *argv[ ])tif(argc!=3) {cout « "Копирование <файл_ввода> <файл_вьшода>\п";return 1;}ifstream fin{argv[l]); // открытие файла для вводаofstream fout(argv[2]); // создание файла для вывода595596___Самоучитель C++if(!fin) (cout « "Файл для ввода открыть невозможно\п";return 1;}if (! fout) {cout « "Файл для вывода открыть невозможной";return 1;>char ch;unsigned count = 0;fin.unsetf (ios: :skipws) ; // не пропускать пробелыwhile (Ifin.eof 0 ) {fin » ch;if (Ifin.eof () ) {fout « ch;count++;cout « "Число скопированных байтов: " « count « '\n';fin.

closed ;fout .close {) ;return 0;Результат, выводимый этой программой, может отличаться от того, которыйвыводится в каталоге, поскольку некоторые символы могут интерпретироваться иначе. Уточним, когда считывается последовательность возврат каретки/перевод строки, она преобразуется в символ новой строки. При выводеновая строка считается одним символом, но опять преобразуется в последовательность символов возврат каретки/перевод строки.2. ^include <iostream>#include <fstream>using namespace std;int main (}{of stream pout ("phone") ;ifUpout) {cout « "Файл PHONE открыть невозможной";return 1;Приложение В. Ответы на вопросы и решения упражненийpout « "Иссак Ньютон, 415 555-3423\п";pout « "Роберт Годдард, 213 555-2312\п";pout « "Энрико Ферми, 202 555-1111\п";pout.close();return 0;3.

// Подсчет числа слов^include <iostream>^include <fstream>^include <cctype>using namespace std;int main (int argc, char *argv[]){if(argc!=2) {cout « "Подсчет слов: <файл_ввода>\пreturn 1;ifstream in(argv[ 1 ]);cout « "Файл ввода открыть невозможно\п"return 1 ;int count = 0;char ch;in » ch; // нахождение первого символа — не пробела// Теперь пробелы пропускать нельзяin.unsetf (ios: iskipws) ; // не пропускать пробелыwhile ( ! in.eof {) ) (in » ch;if (isspace (ch) ) (count++;while {isspace (ch) && ! in.eof (}) in » ch;cout « "Число слов : " « count « ' \n ' ;in.

close {};return 0;597598Самоучитель C++__(Если между словами имеется более одного пробела, то общее число словподсчитывается программой неправильно. Кроме этого необходимо, чтобыпоследним символом в файле был пробел. — Примеч. пер.)4. Функция is_open возвращает истину, если вызывающий поток связан с открытым файлом.9.31а. // Копирование файла и вывод числа скопированных символов# include <iostream>^include <fstream>using namespace std;int rnain(int argc, char *argv[])if(argc!=3) {cout « "Копирование: <файл_ввода> <файл__вывода>\п";return 1;}ifstream fin(argv[l], ios::in I ios : :binary) ;// открытие// файла вводаofstrearn fout (argv[2] , ios::out | ios : :binary) ; // создание// файла выводаif{!fin) (cout « "Файл ввода открыть невозможно \n";return 1;»iff! fout) {cout « "Файл вывода открыть невозможной";return 1;char ch;unsigned count = 0;while (Ifin.eof (} ) (fin.

get (ch) ;if ( Ifin.eof {) }fout. put (ch) ;count++;cout « "Число скопированных байтов: " « count « '\n';fin. closed ;fout .close () ;Приложение1В.Ответынавопросыирешенияупражненийreturn 0;lb. // Подсчет числа слов#include <iostream>#include <fstream>^include <cctype>using namespace std;int main (int argc, char *argv[]){if (argc!=2) {cout « "Подсчет: <файл_авода>\п";return 1;)if stream in{argv[l] , ios: :in | ios : : binary) ;if('in) {cout « "Файл ввода открыть невозможно \п";return 1;}int count — 0;char ch;// нахождение первого символа — не пробелаdo {in. get (ch) ;} while (isspace (ch) } ;while ( lin.eof (} } {in. get (ch) ;if (isspace (ch) ) {count ++;// Поиск следующего словаwhile (isspace (ch) && lin.eof () ) in.

get (ch) ;cout « "Число слов: " « count « '\n';in. close () ;return 0;2. // Вывод содержимого класса account в файл с помощью// пользовательской функции вывода^include <iostream>__599600_______Самоучитель^include <fstream>^include <cstring>using namespace std;class account {int custnum;char name[80] ;double balance;public :account (int c, char *n, double b){custnum = c;strcpy(name, n) ;balance = b;}friend ostream &operator« (ostream sstream, account ob) ;>'ostream &operator« {ostream Sstream, account ob)tstream « ob. custnum « ' ';stream « ob.name « ' ' « ob.

balance;stream « '\n' ;return stream;int main ( ){account RexflOll, "Ralph Rex", 12323.34);ofstream out ("accounts", ios::out I ios: :binary) ;if (lout) fcout « "Файл вывода открыть невозможной"return 1;•}out « Rex;out .close {) ;return 0;9.41. // Использование функции get() для считывания строки с пробелами^include <iostream>^include <fstream>using namespace std;C++Приложение В. Ответы на вопросы и решения упражнений601int main()char str [80];cout « "Введите Ваше имя: ";cin.get (str, 79);cout « str « ' \ n ' ;return 0;Программа работает одинаково, независимо от того, какая функция используется — get() или getlineO2.

// Использование функции getlineO для вывода файла на экранttinclude <iostream>^include <fstream>using namespace std;int main(int argc, char *argv[]){if{argc!=2) {cout « "Считывание: <имя__файла>\п";return 1;ifstreara in(argv[l]);cout « "Файл ввода открыть невозможной";return 1;char str[255];while(lin.eof()) {in.getline(str, 254);cout « str « '\n';Jin.closeO ;return 0;I9.51. // Вывод содержимого файла на экран в обратном порядке^include <iostream>^include <fstream>using namespace std;602______Самоучительint main(int argc, char *argv[]){if(argc!=2) {cout « "Реверс: <имя_файла>\п";return 1;}if stream in (argv [ 1 ] , ios : : in I ios : : binary) ;if(!in) {cout « "Файл ввода открыть невозможно \п";return 1;char ch;long i;// переход в конец файла (до символа eof)in.seekg(0, ios::end);i = (long) in.tellgO; // выяснение количества байтов в файлеi4-—=s £,9 f•for(; i>=0; i~) {in.seekg(i, ios::beg);in.get(ch);cout <<; ch;in.

close {) ;return 0;2. // Перестановка местами символов в файле^include <iostream>ttinclude <fstream>using namespace std;int main(int argc, char *argv[]){if(argc!=2) {cout « "Перестановка: <имя_файла>\п";return 1;// Открытие файла для ввода/выводаf stream io(argv[ 1 ] , ios; :in 1 ios : :out | ios: : binary) ;cout « "Файл открыть невозможно\п";C++Приложение В. Ответы на вопросы и решения упражненийreturn 1;}char chl, ch2;long i;for(i=0; !io.eof(); i+=2) {io.seekg (i, ios::beg);io.get(chl);if(io.eof()) continue;io.get(ch2);if(io.eof()) continue;io.seekg(i, ios::beg);io.put(ch2);io.put(chl);}io.close (};return 0;9.6la./* Вывод содержимого файла на экран в обратном порядке с контролемошибок*/^include <iostream>^include <fstream>using namespace std;int main(int argc, char *argv[]){if (argc!=2) (cout « "Реверс: <имя_файла>\п";return 1 ;if stream in (argv [ 1 ] , ios : : in | ios : : binary) ;if(!in) fcout « "Файл ввода открыть невозможно \п" ;return 1 ;char ch;long i;// Переход в конец файла (до символа eof)in.

seekg(0, ios: :end) ;603604_Самоучительif { ! i n . g o o d ( ) } return 1;i = (long) in.tellgO; // выяснение количества байтов в файлеif ( ! in. good О ) return 1;i -= 2;for(; i>=0; i — } {in.seekg (i, ios : :beg) ;if ( ! in. good () ) return 1;in. get (chj ;if { ! in. good {) ) return 1;cout « ch;in. close () ;if ( ! in. good{) } return 1;return 0;1Ь. // Перестановка местами символов в файле с контролем ошибокftinclude <iostream>^include <fstream>using namespace std;int main(int argc, char *argv[]){. if (argc!=2) {cout « "Перестановка: <имя_файла>\п";return 1 ;// Открытие файла для ввода/выводаf stream io (argv [ 1 ] , ios : : in | ios : : out i ios : : binary) ;if(!io) {cout « "Файл открыть невозможно\п";return 1;char chl, ch2;long i;for(i=0; !io.eof(); i+=2) {io.seekg (i, ios: :beg) ;if ( !io.good(} ) return 1;io.get (chl) ;if (io.eof () ) continue;io.get (ch2) ;if ( ! io.

Характеристики

Тип файла
PDF-файл
Размер
65,55 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее