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

Проверка на введенные данные - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать программу для демонстрации накопления, обработки и отображения элементов списка. http://www.cyberforum.ru/cpp-beginners/thread690449.html
Для размещения данных в виде связных списков выбрать прикладную область. Разработать программу для демонстрации накопления, обработки и отображения элементов списка. Количество размещаемых элементов должно определяться во время выполнения программы. Реализовать диалоговый режим общения с пользователем.
C++ 1. Дана строка символов. Определить, является ли она правильным скобочным выражением Помогите сделать программу: Дана строка символов. Определить, является ли она правильным скобочным выражением. http://www.cyberforum.ru/cpp-beginners/thread690447.html
Создать процедуру/функцию SubWord(s,n,l),которая реализует выделение из строки s l слов, начиная от слова номер n C++
Работа со строками.Создать процедуру/функцию SubWord(s,n,l),которая реализует выделение из строки s l слов, начиная от слова номер n на С++. Есть код,который нужно доредактировать(проблема в векторе): #include <iostream> #include <string> #include <sstream> #include <vector> void SubWord(std::string &s, int n, int l)
C++ Массив. Ошибка вывода
подскажите где косяк? почему то выводит двыжды отсортированный массив. #include <iostream> #include <stdio.h> using namespace std; int main() { int a, i, j, n, k; int b, max;
C++ Решить уравнение p*x2+d*x+r=0, где p - минимальный элемент матрицы A; d –минимальный элемент матрицы B; r - минимальный элемент матрицы C. http://www.cyberforum.ru/cpp-beginners/thread690423.html
Заданы три матрицы A, B, C. Решить уравнение p*x2+d*x+r=0, где p - минимальный элемент матрицы A; d –минимальный элемент матрицы B; r - минимальный элемент матрицы C. Поиск минимального элемента матрицы оформить в виде подпрограммы – функции. Исходные данные: A = {2.5 3.1 B = {2.3 7.8 9.1 C = { 4.8 0.8 -4.6 0.4} -6.7 1.2 2.1 ...
C++ выпросы по работе со строками никак не могу понять, в чем ошибка. пытаюсь сравнить строки: отсутствует оператор "==", соответствующий этим операндам; Ошибка 1 error C2678: бинарный "==": не найден оператор, принимающий левый операнд типа "std::string" (или приемлемое преобразование отсутствует) int getnumstr(string name){ int i; for(i=0; i<counter; i++) if (arr.name==name) return i; подробнее

Показать сообщение отдельно
stdafx
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 8
07.11.2012, 23:42  [ТС]     Проверка на введенные данные
Цитата Сообщение от igorrr37 Посмотреть сообщение
Вроде бы работает
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
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <string>
#include <sstream>
#include <map>
#include <climits>
#include <boost/regex.hpp>
#include <boost/lexical_cast.hpp>
 
typedef std::ios_base& (*Pointer)(std::ios_base&);
 
int main ()
{
    if(sizeof(long long) > sizeof(int))
    {
        long long ll;
        std::string s;
        // Таблица соответствий
        std::map<Pointer, boost::regex> map;
        map.insert(std::make_pair(&std::hex, "[+-]?0[xX][\\da-fA-F]{1,8}"));
        map.insert(std::make_pair(&std::oct, "[+-]?0[0-7]{1,11}"));
        map.insert(std::make_pair(&std::dec, "[+-]?[1-9]\\d{0,9}"));
        //
        std::stringstream ss;
        // Лимиты
        std::cout << std::showbase << "Limits:\n";
        std::cout << "INT_MAX hex: " << std::hex << INT_MAX << '\n' << "INT_MIN hex: -" << INT_MIN << std::endl;
        std::cout << "INT_MAX oct: " << std::oct << INT_MAX << '\n' << "INT_MIN oct: -" << INT_MIN << std::endl;
        std::cout << "INT_MAX: " << std::dec << INT_MAX << '\n' << "INT_MIN: " << INT_MIN << std::endl;
        std::cout << '\n';
        //
        bool correct;
        while(true)
        {
            std::cout << "Input int : ";
            std::getline(std::cin, s);
            correct = false;
            for(auto const& pair : map)
            {
                if(boost::regex_match(s, pair.second))
                {
                    correct = true;
                    ss.str(s);
                    ss >> pair.first >> ll;
                    if(INT_MIN <= ll && INT_MAX >= ll)
                        std::cout << ll << std::endl;
                    else
                        std::cout << "Overflow: " << ll << std::endl;
                    ss.clear();
                    break;
                }
            }
            if(!correct)
                std::cerr << "Format not provided" << std::endl;
        }
    }
    return 0;
}
Я не очень-то разбираюсь с Boost (вообще впервые вижу), если не удосужит, можете как-нибудь проще составить?
 
Текущее время: 08:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru