Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 03.11.2017
Сообщений: 53

Ограничить ввод символов в консольное приложение на С++

12.09.2018, 18:52. Показов 1455. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Столкнулся с проблемой: пишу лабораторку, которая выводит треугольник равнобедренный, заполненный символом '*'.
Размер треугольника (основание) определяется пользователем (переменная size).
Нужно сделать так, что если пользователь вводит буквы, выдаёт ошибку.
Весь интернет обползал, решения не нашёл. кусочек кода представлен ниже

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
#include "pch.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    int res;
    setlocale(0, "RUSSIAN");
    int size = 0; //Длина основания.
    int h;//Высота треугольника.
    cout << "Введите длину основания: " << endl;
    cin >> size;
    if (size <= 0)
    {
        cout << "Ошибка, длина основания должна быть >= 0! ";
        cout << '\n';
        return main();  
    }
    
    
    
    if (size % 2 == 0)
    {
        cout << "Ошибка: длина основания должна быть нечетным\n";
        return main();
    }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.09.2018, 18:52
Ответы с готовыми решениями:

Чтение и ввод в какоенибудь консольное приложение
Вот допустим есть какая нибудь программа назавем её программа а, и моя программа - программа б. Программа б вводит в программу а значения,...

консольное приложение (при запуске приложение открывалось на весь экран)
Как сделать, чтобы при запуске приложение открывалось на весь экран?

Ограничить ввод символов в servlet?
Здравствуйте! Как можно реализовать на серверной части, ограничить вводимых символов, ниже приведен код, который берет данные с HTML. ...

2
14 / 11 / 3
Регистрация: 12.09.2018
Сообщений: 61
12.09.2018, 19:03
C++
1
2
3
4
5
6
7
8
if (size <= 0)
    {
        cout << "Ошибка, длина основания должна быть >= 0! ";
        cout << '\n';
        std::cin.clear();
        std::cin.ignore();
        return main();  
    }
1
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
12.09.2018, 19:13
Лучший ответ Сообщение было отмечено Morsis как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
do
    {
        cout << "Введите длину основания: " << endl;
        if (cin >> size)
        {
            if (size <= 0)
                cout << "Ошибка, длина основания должна быть > 0!\n";
            else if (size % 2 == 0)
                cout << "Ошибка: длина основания должна быть нечетным\n";
        }
        else
        {
            cout << "Ошибка: введен символ\n";
            cin.clear();
            cin.ignore(128,'\n');
        }
    } while (size <= 0 || size % 2 == 0);
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.09.2018, 19:13
Помогаю со студенческими работами здесь

Ограничить ввод символов в textbox
Подскажите как сделать, чтобы в текст бокс вводились только шесть цифр от 0 до 9, в таком формате 12:12:45, то есть чтобы символы...

Ограничить ввод символов в TextBox
Я хочу сделать ограничение ввода в текстовое поле (т.е только цифры и определенные знаки). В WinForms у компонента есть событие KeyPress,...

Ограничить ввод символов не из массива
Привет, нужно разрешить ввод символов только из массива: void __fastcall TForm1::famKeyPress(TObject *Sender, char &amp;Key) { ...

Ограничить пользователю ввод определенных символов
Здравствуйте. Есть некая консольная программа. Каждый из методов требует от пользователя ввода чисел. Как в Main написать код так, чтобы...

Ограничить ввод некоторых символов в поле password
Как сделать чтобы switch проверял case, ну или ограничить ввод некоторых символов в поле password. Не судите строго, только учусь! ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru