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

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

Войти
Регистрация
Восстановить пароль
 
LuSkar
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 23
#1

Switch default и cin - C++

08.01.2013, 15:10. Просмотров 381. Ответов 4
Метки нет (Все метки)

Проблема в следующем: Если в case есть cin то после завершения кейса выбирается default, как избежать этого?
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
        
                int i;
        char s[10];
        do {           
        cout<<"— Поиск —"<<endl<<endl;
        cout<<"Выберите пункт меню:"<<endl;
        cout<<endl;
        cout<<"1."<<endl;
        cout<<"2."<<endl;
        cout<<"3."<<endl;
        cout<<endl;
        cout<<"Выбранный пункт меню: "; 
        cin.getline(s,10); 
        i=atoi(s);
        switch(i)
        {
            case 1:
            {   
                string a;
                cin>>a; cout<<a;
                system("pause");  
                system("cls");        
                break; 
                break;                    
            }
            case 2:
            {
                string a;
                cin>>a; cout<<a;
                system("pause");  
                system("cls");        
                break;
            }
                default:if(i>3 || i<1) {cout<<endl<<"Введите значения от 1 до 3"<<endl<<endl; system("pause"); system("cls"); break;}
        }
        }
        while (i!=3);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2013, 15:10     Switch default и cin
Посмотрите здесь:

Оператор Switch - default - C++
У меня есть якобы такой код на С++ Builder`e. Я сделал к каждому сase свою формулу. в ListBoxe у меня есть 4 строчка, где должен быть...

Недопонимание с switch и выводом default - C++
Задание: сделать так что бы при вводе целого числа (от 1 до 7 которые соответствует дням недели, 1- понедельник, 2 -вторник и т.д.)...

Возвращение значения из switch-default - C++
Здравствуйте! У меня задача на создание двох фунций, которые вычисляют среднее значение двух и трех чисел соответственно. Все это я сделал....

В операторе switch всегда срабатывает default - C++
Привет всем, вот такая проблема ввожу указанные в case буквы, в любом случий срабатывает default, почему так? #define WINVER 0x0501 ...

Для чего нужны break и default в switch - C++
что означает строка break и default в codeblocks? пример: #include using namespace std; int main() {

Неполадка с default в switch-case - вывод срабатывает дважды - C++
Здравствуйте! Такая вот ерундовая проблема, но хотелось бы узнать почему происходит именно так =) Есть функция, проверяющая...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
08.01.2013, 16:11     Switch default и cin #2
если i будет 1 то сработает case 1:
если i будет 2 то сработает case 2:
во всех остальных случаях - default

Добавлено через 1 минуту
в 24 строке лишний break можно убрать
LuSkar
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 23
08.01.2013, 16:32  [ТС]     Switch default и cin #3
После завершения case 1 или case 2 срабатывает default. Я обнаружил, что это происходит из-за наличия cin в кейсах.
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
08.01.2013, 16:52     Switch default и cin #4
Сейчас я себе скопирую эту программу и проверю как работает. Но вроде должна бы нормально

Добавлено через 4 минуты
ошибок нет. Все работает и в default не заходит если нажать 1 или 2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2013, 18:45     Switch default и cin
Еще ссылки по теме:

std::cin & switch case - C++
Всем привет. Вообщем проблема такая: while(val) { int choice; std::cin &gt;&gt; choice; switch(choice) { case 1: ...

Cin + cin.getline() - C++
Почему, если после считывание с помощью cin считать строку с помощью cin.getline(), строка считывается только в той же строке где мы...

Default copy constructor - C++
Что default copy constructor делает, из-за чего мой NRVO выводит разные адресса, если оставить его по умолчанию. А если переопределить...

default компилятор под Windows 7 - C++
Хочу скомпилировать себе mono develop погонять, но сам проект с джитхаба не запускается говорит мол версия 2010 слишком стара, какие есть...


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

Или воспользуйтесь поиском по форуму:
LuSkar
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 23
08.01.2013, 18:45  [ТС]     Switch default и cin #5
Только что создал новый проект и проверил, после выполнения кейса получаем I'm default.

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
#include<iostream>
#include<string>
using namespace std;    
 
int main()
{
        int i;
        char s[10];
        do {           
        cout<<"Select number:"<<endl;
        cout<<endl;
        cout<<"1."<<endl;
        cout<<"2."<<endl;
        cout<<"3."<<endl;
        cout<<endl;
        cout<<"Your choose: "; 
        cin.getline(s,10); 
        i=atoi(s);
        switch(i)
        {
            case 1:
            {   
                cout<<"Case 1: ";
                string a;
                cin>>a; cout<<a<<endl;
                system("pause");  
                system("cls");        
                break;                
            }
            case 2:
            {
                cout<<"Case 2: ";
                string a;
                cin>>a; cout<<a<<endl;
                system("pause");  
                system("cls");        
                break;
            }
                default:if(i>3 || i<1) {cout<<endl<<endl<<"I'm Default!!!"<<endl<<endl; system("pause"); system("cls"); break;}
        }
        }
        while (i!=3);
}
Yandex
Объявления
08.01.2013, 18:45     Switch default и cin
Ответ Создать тему
Опции темы

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