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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Pacifican
1 / 1 / 0
Регистрация: 09.12.2009
Сообщений: 80
Записей в блоге: 1
#1

Проверка на числовые значения - C++

14.07.2011, 00:25. Просмотров 1571. Ответов 5
Метки нет (Все метки)

отладка-командная строка:
- как чекнуть и вывести алерт текствой введите корректно значение ПРИ ВВОДЕ некорректного значения
-как удалять не все поля а только нужные
то есть не так в смысле
C++
1
system("cls");
Добавлено через 58 минут
Может быть непонятно перефразирую
1) как проверить поле на ввод именно числового а не буквенного(спец.символы и тд) сивола в консоле? ну и вывести сервис мессейдж Please input correct symbol
2) как удалить последнее введенное значение или некоторый муссор который оседаент в консоле в результате действия аппликейшина
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2011, 00:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка на числовые значения (C++):

Записать числовые значения из файла в массив - C++
Есть такой код Извините за беспокойство, хотел спросить, как производится запись из файла в массив на языке С++? Есть такой...

Проверка значения - C++
Допустим есть фрагмент программы, типа #include <iostream> using namespace std; int main() { setlocale(0,"Rus"); double a; ...

Проверка значения функции - C++
Здравствуйте. У меня есть такой фрагмент кода ... if (CheckVariantPlayer(test1, test2, test3, nothing, nothing, testQuest)...

проверка введенного значения - C++
Подскажите пожалуйста, хочу реализовать проверку на введенное значение, заметил если получаемой переменной с консоли ставить тип int то при...

Проверка на правильность ввода значения. - C++
Вот пишу так называемую "проверку на дурака". Столкнулся с проблемой, код: { double ch; int y=0; do{ y=1; int q=0; int...

Проверка на ввод отрицательного значения - C++
Задача заключается в том, чтобы время в формате X часов Y минут Z секунд перевести в N секунд с помощью функции hms_to_secs; ...

5
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
14.07.2011, 10:42 #2
Цитата Сообщение от Pacifican Посмотреть сообщение
1) как проверить поле на ввод именно числового а не буквенного(спец.символы и тд) сивола в консоле? ну и вывести сервис мессейдж Please input correct symbol
считывай ввод в строку, потом посимвольно проверяй ее
Цитата Сообщение от Pacifican Посмотреть сообщение
2) как удалить последнее введенное значение или некоторый муссор который оседаент в консоле в результате действия аппликейшина
в общем случае - никак. А в частном случае могут помочь библиотеки типа *curses
0
CAHTEXHUK
Заблокирован
14.07.2011, 10:46 #3
можно через getch организовать свою функцию ввода, он же вроде без эха считывает
0
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
14.07.2011, 11:39 #4
Вот вариант, на WinApi.
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
#include <stdio.h>
#include <windows.h>
 
bool is_digit(const char*  str) {
    while( *str ) {
         if(! isdigit( *str++ ))
               return false;   
   }
   return  true;
}
 
struct  msgerr {
    COORD  pos;
    int  len;
};
 
 
void   main(void) {
 
   HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
   msgerr  tmp  = { 0, 0, 0 };
   DWORD dw;
 
   char snum[12] = { '\0' };
   while(1) {
         scanf("%s", snum);
         if(! is_digit(snum)) { // проверка на числовые символы
               CONSOLE_SCREEN_BUFFER_INFO  info;
               ZeroMemory(&info, sizeof(CONSOLE_SCREEN_BUFFER_INFO));
 
               GetConsoleScreenBufferInfo(hout, &info); 
               COORD  pos = {  info.dwCursorPosition.X, info.dwCursorPosition.Y - 1 };
 
               SetConsoleCursorPosition(hout, pos);
               FillConsoleOutputCharacter(hout, ' ', lstrlen(snum), pos, &dw);
                  
               const TCHAR* str =  "Input correct symbol !";
               COORD    msgp  = {  info.dwSize.X / 2 - lstrlen(str) / 2, pos.Y }; 
               WriteConsoleOutputCharacter(hout, str, lstrlen(str), msgp, &dw);
               tmp.pos = msgp;
               tmp.len  = lstrlen(str);
 
                // можно диалогом поругать 
               // MessageBox(NULL, str, "error", MB_OK | MB_ICONEXCLAMATION);
 
    } else {
              printf("number: %d\n", atoi(snum) );
 
              if(tmp.len > 0) {
                   FillConsoleOutputCharacter(hout, ' ', tmp.len, tmp.pos, &dw);
                   FillMemory(&tmp, 0, sizeof(msgerr));
             }
     }
   }
   getchar();
}
1
Pacifican
1 / 1 / 0
Регистрация: 09.12.2009
Сообщений: 80
Записей в блоге: 1
14.07.2011, 12:53  [ТС] #5
господа а можно пример кода и есть ли варианты без подключения библиотек?

Добавлено через 1 час 8 минут
И есть похитрее идейка как делать нажатия всех символов кроме цифр нулевыми?
0
CAHTEXHUK
Заблокирован
14.07.2011, 13:00 #6
выводится всё кроме цифр например, требует conio.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void input()
{
    char ch;
    while ((ch = getch()) != 0xD)
    {
        if (!isdigit(ch))
            cout << ch;
        
    }
}
 
int main()
{
    input();
    return 0;
}
Добавлено через 51 секунду
предекат можно подставить другой, тиам много всяких разных. Для вашей задаче надо просто ! убрать
0
14.07.2011, 13:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2011, 13:00
Привет! Вот еще темы с ответами:

Проверка на ввод правильного значения - C++
Здравствуйте. Как сделать проверку на ввод правильного значения? У меня есть заранее известное значение &quot;name&quot;. Как сделать так, чтобы при...

Проверка значения переменной на принадлежность интервалу - C++
Здравствуйте, собственно задача звучит так: &quot;Даётся число N и нужно проверить принадлежит ли число N интервалу от 1 до 100 ( или же N&gt;1 и...

Проверка вводимых чисел на допустимые значения - C++
Поле шахматной доски определяется парой натуральных чисел: первое число - номер вертикали (при счете слева направо), второе - номер...

Проверка, есть ли в ячейке вектора значения - C++
if ( vec_all != 0) { for (int t = 0; t &lt; vec_all.size(); t++) { for (int n = 0; n &lt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru