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

Защита от ввода букв - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ найти в промежутке от a до b число, с максимальной суммой делителей. pascal http://www.cyberforum.ru/cpp-beginners/thread575360.html
Необходимо найти в промежутке от a до b число, с максимальной суммой делителей.
C++ найти значение функции f(x,y)... помогите плиз решить задачку!!!! только самым простым способом,даже не через массивы или еще что то!!! просто через простые условия. заранее благодарю))) я написала программу но у меня почему то ошибки(( #include <iostream> #include <math.h> using namespace std; int main(void) { double x,y,f; cout<<"\nVvedite koordinaty x, y: \n"; cin>>x>>y; http://www.cyberforum.ru/cpp-beginners/thread575356.html
C++ Дана матрица размера M × N (N — четное число)
Дана матрица размера M × N (N — четное число). Поменять местами левую и правую половины матрицы. Добавлено через 5 часов 2 минуты ответь плз
Описать тип TDate C++
Описать тип TDate — запись с полями целого типа Day (день), Month (месяц) и Year (год) и описать функцию DaysInMonth(D) целого типа с параметром типа TDate, которая возвращает количество дней для месяца, указанного в дате D. Вывести значение функции DaysInMonth для пяти данных дат (предполагается, что все даты являются правильными). Добавлено через 5 часов 3 минуты ответьте плз
C++ найти в промежутке от a до b число, с максимальной суммой делителей http://www.cyberforum.ru/cpp-beginners/thread575350.html
Необходимо найти в промежутке от a до b число, с максимальной суммой делителей. В pascal.
C++ Составьте структуру, проинициализируйте переменную типа структуры и выведите на экран полное значение такой переменной. Составьте структуру, проинициализируйте переменную типа структуры и выведите на экран полное значение такой переменной. -структура месяца(название, количество дней) Добавлено через 5 часов 4 минуты ответьте плз подробнее

Показать сообщение отдельно
SuperMario
 Аватар для SuperMario
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 3
09.01.2013, 19:33     Защита от ввода букв
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
SuperMario, покажи полный код, просто хочу увидеть что ты ничего не упустил

Не по теме:

PS:А вот это радует!
Люблю когда люди понимают что им хочу донести

Да мне,честно говоря,стыдно показывать свой код : )).
Я просто переделал твою конструкцию немного для своей задачи:
Менюшка с тремя пунктами. Выбираешь 1 пункт - сложения трех чисел, 2 - умножение чисел, 3 - выход из программы. При выборе пункта меню и введении любых символов/чисел кроме 1, 2 или 3 прога должна выдавать сообщение: "неправильный пункт меню". Эту часть задачи мне удалось сделать, фактически, извратив твой код : )). Не совсем получается сделать проверку на ввод неправильных данных при введении трёх переменных до вызова функции умножения/сложения. Но даже когда вводищь правильные данные, например: 2, 12.347, 3 - то после выведения правильного результата в консоль мы еще дополнительно видим сообщение "Вы ввели несуществующий пункт меню...". Хотяб от этого сообщения избавиться : ) Видимо я все-таки что не учел. Прошу подсказать решение для этой проблемы. Сам код:

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include "stdafx.h"
#include <iostream>
#include <cstdlib> 
#include <conio.h>
#include <cmath>
 
using namespace std;
 
float slojenie (float f_n1, float f_n2, float f_n3) {
    return f_n1 + f_n2 + f_n3;
}
 
float ymnojenie (float f_n1, float f_n2, float f_n3) {
    return f_n1 * f_n2 * f_n3;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    int param    = 0;
    char inpStr[1024];
    char bufStub = 0; 
    cout << "Вас приветствует программа для вычисления "<<endl;
    cout << "суммы и произведения трёх чисел.Пожалуйста, "<<endl;
    cout << "введите '1', '2' или '3' (без кавычек) "<<endl;
    cout << "для доступа к нужному пункту меню.  "<<endl<<endl;
    while(1)
    {   
        float n1, n2, n3;
        
        cout<<"              ::Меню программы:: "<<endl<<endl;
        cout<<"          '1'   - Сложение трех чисел."<<endl;
        cout<<"          '2'   - Умножение трех чисел чисел."<<endl;
        cout<<"          '3'   - Выйти из программы."<<endl<<endl;
        bufStub = 0;
        if((!(scanf)("%1023[^\n]%c",inpStr,&bufStub)) || bufStub != '\n')
        {
            cout << "Вы ввели несуществующий пункт меню. "<<endl;
            cout << "Пожалуйста, введите '1', '2' или '3' "<<endl;
            cout << "для доступа к нужному пункту меню.  "<<endl<<endl;
                getchar();
        }
        else
        if(1 < strlen(inpStr)) {
            cout << "Вы ввели несуществующий пункт меню. "<<endl;
            cout << "Пожалуйста, введите '1', '2' или '3' "<<endl;
            cout << "для доступа к нужному пункту меню.  "<<endl<<endl;
        }
        else
        if(!sscanf(inpStr,"%d%c",&param,&bufStub) || bufStub != '\n')
            printf("Errors in input(input contains alphas or has unsupported format)\n");
        else 
        if (param == 1) {
            cout << "Для сложения введите три числа: "<<endl;
            bufStub = 0;
            cin >> n1 >> n2 >> n3;
            cout<<endl;
            cout << "Результат сложения трёх чисел : "<<slojenie(n1, n2, n3)<<endl<<endl;
            
        }
        else if (param == 2) {
            cout << "Для умножения введите три числа: "<<endl;
            cin >> n1 >> n2 >> n3;
            cout<<endl;
            cout << "Результат умножения трёх чисел : "<<ymnojenie(n1, n2, n3)<<endl<<endl;
          }
        else if (param == 3) {
            return 0;
          }
 
        else if ((param > 3) && (param< 10)) {
            cout << "Вы ввели несуществующий пункт меню. "<<endl;
            cout << "Пожалуйста, введите '1', '2' или '3' "<<endl;
            cout << "для доступа к нужному пункту меню:  "<<endl<<endl;
        }
        else if (param == 0) {
            cout << "Вы ввели несуществующий пункт меню. "<<endl;
            cout << "Пожалуйста, введите '1', '2' или '3' "<<endl;
            cout << "для доступа к нужному пункту меню.  "<<endl<<endl;
        }
 
        else
            printf("Your input %d\n",param);
    }
    return 0;
}
 
Текущее время: 09:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru