C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 20. Работа с файлами. Разрешение проблем / Основы Visual C++ / Visual C++

Основы Visual C++
Урок 20. Работа с файлами. Разрешение проблем

Проблема первая.

Как было верно замечено одним из читателей, программа для вывода содержимого файла на экран из прошлого урока работает на вполне правильно, а именно последний символ из файла почему-то выводится на экран два раза:

Результат выполнения программы

И это несмотря на то, что содержимое нашего файла было такое:

123
456

Для разрешения этой проблемы измените код следующим образом:

    ...
    while(!fin.eof()){
        fin>>ch; //Читаем символ
        if(!fin.eof()){
            cout<<ch; //и печатаем его на экране
        }
    }
    ...

Несмотря на всю странность кода (один-то раз мы проверили - не достигли ли мы конца файла в while) он приводит к желаемому результату.

Проблема вторая. В исходном файле пропускаются пробельные символы (в частности переход на новую строку). Для разрешения этой проблемы добавьте следующую строчку:

    ...
    ifstream fin("test.txt");
    fin.unsetf(ios::skipws); //Отменить пропуск пробельных символов
    ...

После переделки программы она должна показывать следующий результат:

Результат выполнения программы