Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
maxibon
0 / 0 / 0
Регистрация: 27.07.2010
Сообщений: 7
#1

Статус ввода-вывода. - C++

18.10.2010, 20:58. Просмотров 607. Ответов 0
Метки нет (Все метки)

Данная программа выводит содержимое файла. Функция f(ifstream) используется для обнаружения
возникших ошибок. Вызов этой функции после цикла считывания символов файла выдает 2 ошибки -
failbit, eofbit. Если перед этим вызовом написать in.clear(ios::eofbit); то по идее eof bit должен сброситься. Но при этом вызов f() выдает именно eofbit (без failbit!!!) (и наооборот). Т.е эта функция сбрасывает все флаги кроме указанного?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <fstream>
using namespace std;
 
void f(ifstream &in);
 
int main()
    {
        ifstream in("main.cpp", ios::in | ios::binary);
        if (!in)
            {
                cout << "Can't open file!\n";
                return 1;
            }
        char ch;
 
        while(in.get(ch))
            {
                cout << ch;
                //in.clear(ios::goodbit);
                //f(in);
            }
 
        //in.clear(ios::eofbit);
        //in.clear(ios::failbit);
 
 
        f(in);
        in.close();
        return 0;
    }
 
void f(ifstream &in)
    {
        ios::iostate i;
        i = in.rdstate();
        //i |= ios::badbit;
 
 
 
        if (i & ios::failbit)
            cout << "Failbit!\n";
        if (i & ios::eofbit)
                cout << "Eofbit!\n";
        if (i & ios::badbit)
            cout << "Badbit!\n";
    }
Добавлено через 32 минуты


Уже разобрался///
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2010, 20:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Статус ввода-вывода. (C++):

Переопределение ввода / вывода - C++
Структура «абонент телефонной сети» содержит следующие поля: 1) фамилия (строка), 2) ули-ца, 3) дом, 4) квартира, 5) тел. номер....

Операторы ввода вывода - C++
Сама задача. Реализовать класс «бинарное дерево» рекурсивно реализовав в нем метод добавления элемента, а также (нерекурсивно) метод поиска...

Операторы ввода вывода в С++ - C++
ребят дайте пожалуйста понятную ссылку что бы можно было почитать и выучить операторы ввода вывода пожалуйста...

Потоки ввода-вывода в С++ - C++
Ребят, нужна помощь В программирование я новичок, но сдать нужно 1. Написать программу, печатающую символы. Использовать цикл while....

Поток ввода-вывода - C++
#include &lt;iostream&gt; using namespace std; int main() { int i; while(true) { if(cin&gt;&gt;i)

Программа на С++ ввода/вывода - C++
Не могу понять где у меня ошибка в программе #include &lt;iostream.h&gt; int main (){ int i; cout &lt;&lt;&quot;Vvedite chislo&quot; ; cin...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2010, 20:58
Привет! Вот еще темы с ответами:

Операторы ввода/вывода - C++
Всем привет! Было задание: сделать сложение двух окружностей, н.р. int main() { Circle c1(1,3,3); Circle c2(1,4,4); ...

Операции ввода и вывода С++ - C++
Необходимо продемонстрировать операции &lt;&lt; и &gt;&gt; для ввода и вывода типов char, int, float, double для какого-либо значения

C++, переопределение ввода-вывода - C++
Решите, пожалуйста, если не трудно) Переопределить операции &lt;&lt; и &gt;&gt; для ввода-вывода матриц размерностью m*n, где m и n кон-станты....

Манипуляторы ввода/вывода - C++
Помогите пожалуйста с решением Выполнить задание соответствующего варианта, с использованием контейнерных классов и алгоритмов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru