Стефан Дэвис - С++ для чайников .

Тут можно читать онлайн Стефан Дэвис - С++ для чайников . - бесплатно полную версию книги (целиком) без сокращений. Жанр: sci_tech, издательство Издательский дом Вильямс. Компьютерное издательство Диалектика, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    С++ для чайников .
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс. Компьютерное издательство Диалектика
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    0-7645-6852-3, 978-5-8459-0723-3
  • Рейтинг:
    4/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Стефан Дэвис - С++ для чайников . краткое содержание

С++ для чайников . - описание и краткое содержание, автор Стефан Дэвис, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
empty-line
1
empty-line
4

С++ для чайников . - читать онлайн бесплатно полную версию (весь текст целиком)

С++ для чайников . - читать книгу онлайн бесплатно, автор Стефан Дэвис
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Выражениеiosout представляет статический членданные классаios - фото 300

«Выражениеios::out представляет статический член-данные классаios

[ Советы ]

Таблица 24.2. Значения аргумента mode в конструкторе класса ofstream

_________________

Флаг — Назначение

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ios::app— Дописывать в конец файла. Вернуть ошибку, если файл не существует

ios::ate— Дописывать в конец файла, если он существует

ios::in— Открыть файл для ввода ( подразумевается для istream )

ios::out— Открыть файл для вывода ( подразумевается для ostream )

ios::trunc— Обрезать файл до нулевой длины, если он существует ( используется по умолчанию )

ios::nocreate— Если файла не существует, вернуть сообщение об ошибке

ios::noreplace— Если файл существует, вернуть сообщение об ошибке

ios::binary— Открыть файл в бинарном режиме ( альтернатива текстовому режиму )

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Таблица 24.3. Значения аргумента prot в конструкторе класса ofstream

_________________

Флаг — Назначение

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

filebuf::openprot— Режим совместного чтения и записи

filebuf::sh_none— Исключительный режим без совместного доступа

filebuf::sh_read— Режим совместного чтения

filebuf::sh_write— Режим совместной записи

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Приведённая ниже программа открывает файл MyName.txt , а затем записывает в него некоторую важную информацию.

/* StreamOutput — простой вывод в файл */

#include

using namespace std ;

int main( int nNumberofArgs , char* pszArgs[ ] )

{

setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */

ofstream my( "MyName.txt" ) ;

my << "С++ для чайников — очень хорошая книга"

<< endl ;

system( "PAUSE" ) ; return 0 ;

}

279 стр Глава 24 Использование потоков вводавывода - фото 301

279 стр Глава 24 Использование потоков вводавывода - фото 302

_________________

279 стр. Глава 24. Использование потоков ввода-вывода

Конструктор ofstream::ofstream( char* ) получает только имя, а потому использует для режима открытия файла значения по умолчанию. Если файл MyName.txt уже существует, он урезается; в противном случае создаётся новый файл MyName.txt . Кроме того, файл открывается в режиме совместного чтения и записи.

Второй конструктор, ofstream::ofstream( char* , int ) , позволяет программисту указывать другие режимы ввода-вывода. Например, если бы я захотел открыть файл в бинарном режиме и произвести запись в конец этого файла ( если он уже существует ), я мог бы создать объект класса ofstream так, как это показано ниже ( напомню, что в бинарном режиме при выводе не выполняется преобразование символа новой строки \n в пару символов перевода каретки и новой строки \r\n , так же как при вводе не происходит обратного преобразования ).

void fn( )

{

/* Откроем бинарный файл BINFILE для записи; если он существует, дописываем информацию в конец файла */

ofstream bfile( "BINFILE", ios::binary | ios::ate ) ;

/* ...продолжение программы... */

}

Потоковые объекты хранят информацию о состоянии процесса ввода-вывода. Функция-член bad( ) возвращает TRUE , если при работе с файловым объектом произошло что-то "плохое". Сюда входят такие неприятности, как невозможность открыть файл, нарушение внутренней структуры и т.п. Функция fail( ) указывает, что либо произошла ошибка, либо последнее чтение было неудачным. Функция good( ) возвращает TRUE, если и bad( ) , и fail( ) возвращают FALSE . Функция clear( ) используется для сброса флага ошибки. Вот как выглядит добавление простейшей обработки ошибок к рассмотренной нами программе.

/* StreamOutputWithErrorChecking — простой вывод в файл */

#include

#include

using namespace std ;

int main( int nNumberofArgs , char* pszArgs[ ] )

{

setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */

const static char fileName[ ] = "MyName.txt" ;

ofstream my( fileName ) ;

if ( my.bad( ) ) /* Открыть не удалось... */

{

cerr << "Ошибка открытия файла "

<< fileName

<< endl ;

return 0 ; /* ...вывод сообщения и завершение работы */

}

my << "С++ для чайников — очень хорошая книга"

<< endl ;

if ( my.bad( ) )

{

cerr << "Ошибка записи в файл "

<< fileName

<< endl ;

}

system( "PAUSE" ) ; return 0 ;

}

_________________

280 стр. Часть 5. Полезные особенности

Все попытки обратиться к объекту классаofstream который содержит ошибку не - фото 303

«Все попытки обратиться к объекту классаofstream , который содержит ошибку, не вызовут никакого действия, пока флаг ошибки не будет сброшен с помощью функцииclear( )

[ Советы ]

Деструктор класса ofstream автоматически закрывает файл. В предыдущем примере файл был закрыт при выходе из функции.

Класс ifstream работает для ввода почти так же, как ofstream для вывода, что и демонстрирует приведённый ниже пример.

/* StreamInput — ВВОД ДАННЫХ С ИСПОЛЬЗОВАНИЕМ fstream */

#include

#include

#include

using namespace std ;

ifstream* openFile( )

{

ifstream* pFileStream = 0 ;

for ( ; ; )

{

/* Открытие файла, указанного пользователем */

char fileName[ 80 ] ;

cout << "Введите имя файла с целыми числами"

<< endl ;

cin >> fileName ;

/* Открываем файл для чтения; не создавать файл, если его не существует */

pFileStream = new ifstream( fileName ) ;

if ( pFileStream -> good( ) )

{

break ;

}

cerr << "Невозможно открыть " << fileName << endl ;

delete pFileStream ;

}

return pFileStream ;

}

int main( int nNumberofArgs , char* pszArgs[ ] )

{

setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */

/* Получение файлового потока */

ifstream* pFileStream = openFile( ) ;

/* Остановиться по достижению конца файла */

while ( !pFileStream -> eof( ) )

{

/* Чтение значения */

int nValue = 0 ;

( *pFileStream ) >> nValue ;

/* Останов при ошибке чтения ( например, считывается не целое число, или считан символ новой строки, после которого ничего нет */

if ( pFileStream -> fail( ) )

{

break ;

}

/* Вывод считанного значения */

cout << nValue << endl ;

}

delete pFileStream ;

system( "PAUSE" ) ; return 0 ;

}

_________________

281 стр. Глава 24. Использование потоков ввода-вывода

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стефан Дэвис читать все книги автора по порядку

Стефан Дэвис - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




С++ для чайников . отзывы


Отзывы читателей о книге С++ для чайников ., автор: Стефан Дэвис. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x