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

Проверка типа данных при вводе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как можно представить множества как вектора произвольной длины http://www.cyberforum.ru/cpp-beginners/thread829270.html
Собственно в названии всё сказано.. Не совсем понимаю как это можно представить на C++.. если имеется в виду массив, то понятно, но если это не массив, то что?
C++ Композитные классы. Определить длину отрезка Здравствуйте, нужно определить длину отрезка компонентным методом класса Line. В классе Dot мы определяем координаты точек. Я создаю функцию в классе Line типа float и в теле функции определяю длину отрезка, но на выходе получаю -nan, т.е как я понял я просто не передаю координаты точек в функцию, поэтому возникает вопрос как это сделать? p.s. реальная задача передо мной стоит другая, но на... http://www.cyberforum.ru/cpp-beginners/thread829269.html
C++ Сохранение настроек и прочего непосредственно в самом .exe
Меня интересуют способы, которые позволяют сохранять что либо, к примеру настройки программы, непосредственно в самом приложении .exe, во время его выполнения. Прошу лишь направить меня в это русло: ссылками, кодом или как либо еще.
C++ Работа с объектами типа string
Здравия желаю!:) Возник вопрос по строкам. При таком коде#include<iostream> #include<conio.h> using namespace std; int main(void) {
C++ Программа вычитания значения а в n степени http://www.cyberforum.ru/cpp-beginners/thread829244.html
Дано действительное число а, натуральное число n.Составить программу вычитания значения а в n степени.Результаты округлитть до тысячных.
C++ Узнать, что за программа Здравствуйте! Пожалуйста помогите узнать что за программа (написал сюда потому что не нашел темы обсуждения, если нужно переместите) Преподаватель задал лабу, но сам не знает в какой программе там сделано. Скрины прикрепил и вот сама лаба http://yadi.sk/d/9pZUPiZu3p3FD Делать ничего не нужно, мне бы узнать в чем делать :) )) подробнее

Показать сообщение отдельно
Altafard
1 / 1 / 0
Регистрация: 05.04.2013
Сообщений: 26

Проверка типа данных при вводе - C++

05.04.2013, 20:52. Просмотров 1194. Ответов 4
Метки (Все метки)

Задача: реализовать проверку на то, что пользователь ввёл целое число.
Нашёл это:

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
//Зачем использовать шаблон?
template<class T> //Для чего нужна Т?
T correct_input(const std::string&  prompt) //Передаём строку
{
    for(;;) //Это бесконечный цикл?
    {
        std::cout << prompt; //Вывели переданную строку
        std::string  str_val; //Создали новую строку для вводимого значения
        std::cin >> str_val; //Считали значение
        std::istringstream  ssin(str_val); //Что происходит в этом месте? Что такое ssin?
        T  val; //Создали переменную с типом Т... тот же вопрос: зачем Т??
        if(ssin >> val) //Непонятно условие! Что возвращает это условие и какие значения вообще может принимать?
        {
            std::string  tmp; //Создали ещё одну строку
            if(!(ssin >> tmp)) //Сравнили с созданной строкой непонятный ssin
                return  val; //Если условие вернуло true, возвращаем val... но где мы присваиваем значение этой
                                //переменной? Что тут возвращается то?
            else
                std::cerr << "INPUT ERROR" << std::endl; //Иначе выдаём ошибку
        }
        else
            std::cerr << "INPUT ERROR" << std::endl;
    }
};
 
int main()
{
    int n = correct_input<int>("Input int val: "); //Инициализируем целую переменную и проверяем
    return 0;
}
Код не мой! Работает. Работает правильно, но хотелось бы знать как именно ибо некоторые моменты мне совсем не понятны! Я не догоняю до самой логики кода, алгоритма. Помогите пожалуйста разобраться!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru