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

Исправить косяк в программе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему не заносит в массив? http://www.cyberforum.ru/cpp-beginners/thread892865.html
for(int i=0;i<N;++i) { for(int j=0;j<N;++j) { if (k=rand() % 4 == 1) map==WALL; else map==-1; printf("%i\n",map); }
C++ Оформить в виде функции Помогите пожалуйста, вот задание: Оформить каждый пункт задания в виде функции. Все необходимые данные для функции должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается. Пункты: 1)поиск совпадающих строки и столбца 2)поиск сумм строк с хотя бы одним отрицательным элементом #include <iostream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread892864.html
C++ Алгоритм и код программы (микрофотографии)
Помогите определить размер частиц, посчитать количество частиц, определить размер. (микрофотографии) Заранее спасибо!
C++ Очистка памяти delete[];
Есть функция ввида: void loltest(int md3) { char* randChars; int cCount; if(md3 <= 0) cCount = 13; else
C++ Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька http://www.cyberforum.ru/cpp-beginners/thread892825.html
2. Дан массив N целых чисел. Получить из него массив положительных чисел и отсортировать его по возрастанию методом пузырька
C++ Перегрузка () Здарвствуйте, помогите с задачей: Имеется класс, создающий двумерный массив, в этом классе нужно реальзовать метод перегружающий () для того, что бы можно было доставать элемент из массива по его индексу #ifndef _MATRIX_H_ #define _MATRIX_H_ #include <iostream> #include<Windows.h> #include<time.h> using namespace std; подробнее

Показать сообщение отдельно
chizz
980 / 494 / 54
Регистрация: 19.03.2013
Сообщений: 3,087
Записей в блоге: 18
Завершенные тесты: 1
11.06.2013, 18:47
Если сделать так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
       
        while (f>>buff)
        {
                        
               if (f.fail())
                {
                        cout<<"Ошибка чтения!"<<"\n" 
                            <<"Найден недопустимый символ в элементе с порядковым номером: "<< n + 1<<"\n"
                            <<"Дальнейшее выполнение программы прервано. Исправьте файл."<<"\n"
                            <<"Нажмите любую клавишу для выхода...";
                        _getch();
                        return -1;
                }
          n++;
     }
То, он будет выдавать правильный результат и при "1" и при "1 " в файле.

Но этот код никогда не будет возвращать ошибку, если найдена не цифра. Потому что f>>buff не выполняется, если найдено не число. А в результате он в любом случае ставит f.fail() в true. Поэтому проверка f.fail не работает.

Поэтому для того, чтобы определить в каком месте не число, надо придумать другую проверку. Либо полностью менять алгоритм.

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
С клавиатуры куда вводите?
alsav22, я-пользователь, создаю в блокноте файл test.txt, пишу там 1, нажимаю сохранить. Запускаю данную программу, а она мне выдает - файл пустой.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru