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

Здесь есть возможность читать онлайн «Стефан Дэвис - С++ для чайников .» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2007, ISBN: 2007, Издательство: Издательский дом Вильямс. Компьютерное издательство Диалектика, Жанр: Технические науки, Программирование, Программы, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

С++ для чайников .: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «С++ для чайников .»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

empty-line
1
empty-line
4

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «С++ для чайников .», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

«Все попытки обратиться к объекту класса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. Использование потоков ввода-вывода

Функция openFile( ) запрашивает у пользователя имя открываемого файла и создаёт поток с этим именем. Создание объекта ifstream автоматически открывает файл для ввода. Если файл открыт корректно, функция возвращает указатель на объект ifstream , который используется для чтения. В противном случае объект удаляется и повторяется попытка открыть файл. Единственный способ выйти из цикла — ввести правильное имя файла или завершить выполнение программы.

Не забывайте о необходимости удаленияpFileStream если вы не смогли открыть - фото 304

«Не забывайте о необходимости удаленияpFileStream , если вы не смогли открыть файл. Это позволит избежать утечек памяти.»

[ Советы ]

Программа считывает целые числа до тех пор, пока не дойдёт до конца файла ( проверяется при помощи функции-члена eof( ) ) или не произойдёт ошибки чтения ( функция fail( ) ). Попытка прочитать информацию с помощью объекта класса ifstream с установленным флагом ошибки приведёт к немедленному возврату без считывания данных. Для сброса флага ошибки используйте функцию clear( ) .

Ещё раз напомню что при чтении из потока в состоянии ошибки ничего считано не - фото 305

«Ещё раз напомню, что при чтении из потока в состоянии ошибки ничего считано не будет. Более того, буфер останется неизменным, так что программа может прийти к ошибочному выводу, что прочитано такое же значение, как и перед этим. Кстати, при наличии ошибки функцияeof( ) никогда не вернётtrue

[ Советы ]

Вывод этой программы имеет следующий вид.

Введите имя файла с целыми числами testfile Невозможно открыть testfile - фото 306

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

testfile

Невозможно открыть testfile

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

integers.txt

123

456

234

654

4363

48923

78237

Press any key to continue...

►Прямое чтение из потока...282

Операторы вставки и извлечения обеспечивают удобный механизм чтения форматированного ввода. Однако бывают ситуации, когда надо просто прочесть нечто из потока, не заботясь о формате входной информации. В этом случае вам могут помочь два метода. Функция-член getline( ) возвращает строку символов, считанную из потока до появления в нём некоторого символа-терминатора — по умолчанию символа новой строки. Данная функция удаляет терминатор из строки, но не делает никаких других попыток каким-либо образом изменить или интерпретировать вводимую строку.

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

Интервал:

Закладка:

Сделать

Похожие книги на «С++ для чайников .»

Представляем Вашему вниманию похожие книги на «С++ для чайников .» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «С++ для чайников .»

Обсуждение, отзывы о книге «С++ для чайников .» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x