Довод "против" Menú делает в то время как se tilda

El problema es que después de ingresar más de dos veces en el case 1, la pantalla queda tildada en Presione una tecla para continuar.....

#include <iostream>

void menu(){
    cout<<"1: Ingresar numero "<<endl;
    cout<<"2: Eliminar numero "<<endl;
    cout<<"3: Visualizar numero "<<endl;
    cout<<"4: Salir "<<endl;    
}

int main(){
    int op,num;
    do{
        menu();
        cin >> op;

        switch(op){
            case 1:
                cout<<"Ingrese Numer\n";
                cin>>num;
                break;           
            case 2:
                cout<<"opcion2";
                break;        
            case 3:
                cout<<"opcion3";
                break;    
        }

        system("pause");      
        system("cls");

    }while(op!=4);

    system("pause");
    return 0;
}
2
задан 14.01.2017, 01:33
0 ответов

Хотя я не уверен, какая проблема у тебя есть exáctamente, я предполагаю, что ты будешь жертвой общей ошибки: ты не знаешь, как функционирует стандартный ввод.

Я думаю, что то, что он перемещает тебя, состоит в том, что, ты пишешь что-то, и потом intro, intro - также символ. Когда ты читаешь, например, cin >> num, cin прочитай ввод до intro, который после того, как не число, задерживается, и символ Intro не тратится. Этот незаконченный intro потом виден из-за system("pause"), и потом я не знаю exáctamente, что будет происходить в твоей программе.

Я предполагаю, что "pause" увидь выражение intro и считай, что пользователь нажал клавишу, входя в следующее повторение.

3
ответ дан 03.12.2019, 17:41
  • 1
    cin.clear ú nicamente отложи flags буфера ввода..., чтобы удалять символы необходимо называть cin.ignore –  16.01.2017, 19:02
  • 2
    @eferion Спасибо за aclaració n. –  16.01.2017, 19:04

Теги

Похожие вопросы