Форум программистов, компьютерный форум CyberForum.ru

Не удаётся сбросить ios::failbit - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подскажите, как исправить 1 ошибку в программе? http://www.cyberforum.ru/cpp-beginners/thread1105788.html
#include "stdafx.h" #include <stdio.h> #include <conio.h> double min = 0; /* зовнiшня змiнна */ int main() { FILE * file; char namef; /* ========= прототипи ========= */ void read_print_icx(FILE * ); /* читання i виведення вхiдного файлу */
C++ Найти и вывести на экран последние три числа, которые кратны четырем (4) и не кратны трем (3) Помогите пожалуйста!!:)Нужно доработать программу, чтобы она выводила 3 слагаемые суммы,т.е эти последние 3 числа:) условие ниже. Найти и вывести на экран последние три числа, которые кратны четырем (4) и не кратны трем (3). Числа ищутся в диапазоне от 1 до N (число N задается пользователем). Помимо этого вычислить сумму найденных трёх чисел. В С++ у меня получилось #include "iostream"... http://www.cyberforum.ru/cpp-beginners/thread1105786.html
Использование массивов в качестве аргумента функции C++
Расстояние l от начала координата до точки n-мерного пространства с координатами(x1,x2....xn)...
Добрый день. Подскажите, возможно ли в system задать условие? C++
Добрый день. Подскажите, возможно ли в system задать условие? Например чтобы если a=1 записывал одно, а если a=2 записывал другое. Заранее благодарю. #include <ios> int main(){ system("for /f %a in (input.txt) do set /a /*выполняется условие*/ >output.txt"); }
C++ Вычесть из элементов первого столбца матрицы значение максимального элемента матрицы http://www.cyberforum.ru/cpp-beginners/thread1105716.html
Составить программу, в которой 1) организовать ввод матрицы размера mxn из целых чисел; 2) вычесть из элементов первого столбца матрицы значение максимального элемента матрицы; 3) переставить элементы первого столбца в обратном порядке; 4) организовать ввод и вывод матрицы в виде отдельных функций Помогите пожалуйста, а то совсем ничего не выходит Т.т
C++ Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти сумму элементов этого массива. Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти сумму элементов этого массива. подробнее

Показать сообщение отдельно
Joe Rixans
0 / 0 / 0
Регистрация: 26.02.2014
Сообщений: 5
26.02.2014, 23:23  [ТС]     Не удаётся сбросить ios::failbit
Цитата Сообщение от retmas Посмотреть сообщение
C++
1
2
3
4
5
cin.clear(ios::badbit);
...
cin.clear(ios::eofbit);
...
cin.clear(ios::failbit);
мне интересно, вы правда понимаете что делают тут ваши clear?
я вполне, а вы? clear без аргументов выставляет все флаги в допустимое состояние, кроме _Hardfail. в качестве аргументов принимает флаги состояние потока, которые выставляет в допустимое состояние. если хотите можно реализовать через setstate, которая является аналогом.
зачем я тут сделал 3 проверки спросите вы, если можно обойтись проверкой значения метода good() потока? чтобы наглядно показать, что не реагируют на ^Z операторы потока, а реагируют в первую очередь на разность типов. напомню, что failbit выставляется и тогда, когда поток достиг конца.

Добавлено через 11 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
Это если он без аргументов. Если с аргументом, то этот флаг как раз установится, а другие будут сброшены.
Вы не путаете с методом setstate? Специально залез в Страуструпа
void clear [iostate f= goodbit) ; //установить флаги состояния i/o , где goodbit==0

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Если в этой строке: 98 98 484 6 ^Z 5 1265 64 652, то:
C++
1
2
3
cin.clear();
cin.get();
cin.get();
Я понял вашу идею, но мне всё равно не понятно, почему не удаётся сбросить флаги в ручную? Флаги устанавливаются при чтении из потока, Но, когда я уже прочитал конец файл, почему флаги не сбрасываются? Да, я понимаю, что поток по сути "остановился" на eof, но не логичнее было бы сбросить флаги и продолжить чтение потока, а не обходить get() неугодные символы?
 
Текущее время: 12:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru