Читаем С++ для "чайников" . полностью

Функция main( ) читает открытый файл блоками по 80 символов, проверяя реально считанное количество символов с помощью функции gcount( ). Для вывода прочитанной информации используется обычный оператор вставки в поток. Вот как может выглядеть вывод данной программы.

    Введите имя файла

integers.txt

    123 456 234 654

    4363 48923 78237 dhbj

    dnbsd

    93276823 4329

    Press any key to continue...

<p id="chapter24.4"><strong>►Что такое endl...284</strong></p>

Большинство программ в данной книге завершают вывод в поток вставкой объекта endl. Однако некоторые программы включают в выводимый текст символ \n. В чём тут дело?

Символ \n — символ новой строки. Так, выражение соut<<"Первая строка\nВторая строка" выведет две строки. При вставке объекта endl также произойдёт вывод символа новой строки, но при этом выполняется ещё одно действие.

Диски — медленные устройства, и чтобы вывод на диск меньше замедлял работу программы, fstream накапливает выводимые данные во внутреннем буфере. Класс выводит буфер на диск по его заполнении. Вставка же объекта endl заставляет сбросить на диск всё, что есть в буфере, независимо от его заполненности. Сбросить буфер без вывода символа новой строки можно при помощи явного вызова функции-члена flush( ).

_________________

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

<p id="chapter24.5"><strong>►Подклассы strstream...285</strong></p>

Потоковые классы позволяют программисту разбивать входные данные на числа и массивы символов. Так называемые "строковые потоки" позволяют использовать операции, определённые для файлов в классах fstream, для строк в памяти. Соответствующие классы istringstream и ostringstream определены в заголовочном файле sstream.

«В старых версиях С++ эти классы назывались istrstream и ostrstream и были определены в заголовочном файле strstream.»

[Советы]

Строковые потоки используют ту же семантику, что и соответствующие базовые классы для файлов, как видно из приведённой далее демонстрационной программы.

    /* StringStream — чтение и разбор содержимого файла */

    #include

    #include

    #include

    using namespace std ;

    /* parseAccountInfo — чтение переданного */

    /*                    буфера как если бы */

    /*                       это был файл. */

    /*              Формат: имя, счёт, баланс. */

    /*                   При корректной работе */

    /*                      возвращает true. */

    bool parseString( char* pString ,

                        char* pName ,

                       int arraySize ,

                     long& accountNum ,

                       double& balance )

    {

        /* Связывает объект istringstream с входной строкой */

        istringstream inp( pString ) ;

        /* Чтение до разделяющей запятой */

        inp.getline( pName , arraySize , ',' ) ;

        // Номер счёта

        inp >> accountNum ;

        // и его баланс

        inp >> balance ;

        /* Возврат состояния ошибки */

        return !inp.fail( ) ;

    }

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

    {

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

        /* Файловый поток */

        ifstream* pFileStream = new ifstream( "Accounts.txt" ) ;

        if ( !pFileStream -> good( ) )

        {

                cout << "Невозможно открыть Accounts.txt" << endl ;

                return 0 ;

        }

        /* Считываем строку файла, разбираем и выводим результат */ 

_________________ 

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

        for ( ; ; )

        {

            /* Добавляем разделитель */

            cout << "=================" << endl ;

            /* Читаем в буфер */

            char buffer[ 256 ] ;

            pFileStream -> getline( buffer , 256 ) ;

            if ( pFileStream -> fail( ) )

            {

                break ;

            }

            /* Разбираем ввод на поля */

            char name[ 80 ] ;

            long accountNum ;

            double balance ;

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Язык программирования Euphoria. Справочное руководство
Язык программирования Euphoria. Справочное руководство

Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных