Флаги Состояния Потока В/в, Функции.

Тема в разделе "Общие вопросы по С и С++", создана пользователем OverClocker, 30 сен 2014.

  1. OverClocker

    OverClocker New Member

    Регистрация:
    21 сен 2014
    Сообщения:
    1
    Симпатии:
    0
    Привет гуру. Недавно начал изучать C++, до этого писал на чистом C. Хочу попросить вашей помощи с решением.

    Само задание:
    Написать функцию, получающую и возвращающую ссылку на объект класса istream. Функция должна читать данные из потока до тех пор, пока не будет достигнут конец файла. Функция должна выводить прочитанные данные на стандартное устройство вывода. Перед возвращением потока верните все значения его флагов в допустимое состояние. Проверьте созданную функцию, передав ей при вызове объект cin в качестве аргумента.

    Вот что я написал (понимаю что не совсем по заданию, но пока ещё не силён в C++):
    Код (C++):
    #include <iostream>
    #include <cstdio>

    using namespace std;

    int main()
    {
    const int SIZE(64);
    int i(1);
    char buffer[ SIZE ];
    while( i == 1 ) {
    cout << "\nВведите стрку и нажмите Ctrl+D (символ конец файла): ";
    cin.get(buffer, SIZE, EOF);
    cout << "\n";
    cout << "\nФлаги до сброса: " << endl;
    cout << "Флаг состояния eof(): " << cin.eof() << endl;
    cout << "Флаг состояния bad(): " << cin.bad() << endl;
    cout << "Флаг состояния fail(): " << cin.fail() << endl;
    cout << "Флаг состояния good(): " << cin.good() << endl;
    cin.clear();
    cout << "\nПовторить ввод (1/0)?" << endl;
    cin >> i;
    if ( i == 1) {
    cout << "\nФлаг после сброса: " << endl;
    cout << "Флаг состояния eof(): " << cin.eof() << endl;
    cout << "Флаг состояния bad(): " << cin.bad() << endl;
    cout << "Флаг состояния fail(): " << cin.fail() << endl;
    cout << "Флаг состояния good(): " << cin.good() << endl;
    } else {
    break;
    }
    }
    return 0;
    }
    Задание вроде простое, но после чистого C возникают непонятности.
    Хочу узнать от вас как будет правильно написать код по заданию? Интересует любая информация.
     
Загрузка...

Поделиться этой страницей