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

Как проверить какой тип данных вводится? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как создавать папки с поролем http://www.cyberforum.ru/cpp-beginners/thread224503.html
Здраствуйте, помогите пожалуйсто, как сделать так чтобы программа создавала папку под паролем? Добавлено через 3 часа 32 минуты Ну что некто незнает хотябы примерно как это сделать можно?
C++ Обработка строк Задание(turbo c++): Подсчитать кол-во слов, находящихся внутри круглых скобок #include <vcl.h> #include <stdio.h> #include <string.h> #define SIZE 15 http://www.cyberforum.ru/cpp-beginners/thread224500.html
C++ ПОДПРОГРАММЫ
добрый вечер!;) такое задание: дана функция y=.... в которой есть несколько сумм ряда. Вычисление суммы ряда нужно выполнить в виде подпрограммы. подскажите как это сделать Добавлено через 10...
Проверьте решение новичка:) C++
Напишите программу,которая считывает с клавиатуры символы до тех пор,пока не будет введен символ $.Организуйте в программе подсчёт количества введённых точек.Результаты подсчёта должны выводиться по...
C++ Перекласть пирамиду http://www.cyberforum.ru/cpp-beginners/thread224479.html
Надо перекласть пирамиду, которая выложена из десяти карточек так, чтобы форма ее не изменилась, но каждая карточка дотрагивалася только до новых карточек.
C++ Найти проекцию точки на прямую (С++) Скоро курсач сдавать, в одном задании не успеваю разобраться как делать. Задание такое: Создать заголовочный файл, содержащий определения структур, описывающих следующие геометрические объекты: 1.)... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,849
06.01.2011, 06:25
Цитата Сообщение от Sokolov Посмотреть сообщение
Хороший код
Ничего хорошего! Во-первых проблему не решает (попробуйте буковки ввести), а во-вторых вот такое бездумное приведение типов, да ещё и сравнивание переменных разных типов - прямой путь к трудноуловимым ошибкам.

Вот типа по-взрослому
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
#include <iostream>
#include <stdexcept>
#include <limits>
#include <cstdlib>
 
int main(){
    int num1, num2;
    char tail;
 
    std::cin.exceptions(std::istream::failbit);
    std::cin.unsetf(std::ios_base::skipws);
    while ( true ){
        try {
            std::cout << "Enter first number: ";
            std::cin >> num1 >> tail;
            if ( tail != '\n' )
                throw std::runtime_error("Need only number!");
            std::cout << "Enter second number: ";
            std::cin >> num2 >> tail;
            if ( tail != '\n' )
                throw std::runtime_error("Need only number!");
            std::cout << "First number: " << num1 << std::endl;
            std::cout << "Second number: " << num2 << std::endl;
            if ( ! num1 || ! num2 ){
                std::cout << "Bye!" << std::endl;
                break;
            }
        }
        catch ( std::istream::failure e ){
            std::cerr << "Need some number!" << std::endl;
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        }
        catch ( std::runtime_error e ){
            std::cerr << e.what() << std::endl;
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        }
    }
 
    system("pause");
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru