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

Error C2044 - C++

Восстановить пароль Регистрация
 
CHELOVEKPAUK
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
29.08.2013, 17:49     Error C2044 #1
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 <iostream>
#include <windows.h>
 
using namespace std;
 
#define rus setlocale(0, ""); SetConsoleCP(1251); SetConsoleOutputCP(1251);
void main()
{
    rus;
    cout << "a) хищник\tc) музыкант\n";
    cout << "b) дерево\td) игра\n";
    char value;
    cin >> value;
    switch (value)
    {
        case 'a': 
        case 'A': cout << "Тигр - хищник\n"; break;
        case 'b':
        case 'B': cout << "Клён - дерево\n"; break;
        case 'c':
        case 'C': cout << "Цой - музыкант\n"; break;
        case 'd':
        case 'D': cout << "Покер - игра\n"; break;
        default: continue;
    }
    system("pause");
}
В задаче говорится: если не введено ни одно из предоставленных символов, повторить запрос на ввод символа.
В строке default: continue; - ошибка С2044 недопустимый continue.
Почему так? Вроде же все верно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
29.08.2013, 17:56     Error C2044 #2
так пишут же
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
В строке default: continue; - ошибка С2044 недопустимый continue.
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 433
29.08.2013, 17:56     Error C2044 #3
switch - не цикл, зачемь тут continue?
CHELOVEKPAUK
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
29.08.2013, 17:58  [ТС]     Error C2044 #4
Цитата Сообщение от Croessmah Посмотреть сообщение
так пишут же
а почему тогда работает break? и как тогда повторить запрос?
можно конечно задать while цикл пока value равно a, b, c или d, а если бы было много пунктов в меню?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
29.08.2013, 17:59     Error C2044 #5
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
а почему тогда работает break?
Тут почитайте: http://www.cyberforum.ru/blogs/18334/blog91.html
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
и как тогда повторить запрос?
Это не цикл!!!
eXtream
24 / 24 / 0
Регистрация: 10.03.2010
Сообщений: 161
29.08.2013, 18:01     Error C2044 #6
Цитата Сообщение от SERUYBKR Посмотреть сообщение
switch - не цикл, зачемь тут continue?
А где у вас, собственно, само сравнение симвалов? Вам нуже цикл. Читайте внимательно задачу
CHELOVEKPAUK
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
29.08.2013, 18:03  [ТС]     Error C2044 #7
Цитата Сообщение от eXtream Посмотреть сообщение
А где у вас, собственно, само сравнение симвалов? Вам нуже цикл. Читайте внимательно задачу
Напишите предшественник программы, управляемой меню. Она должна отображать меню из четырех пунктов, каждый из них помечен буквой. Если пользователь вводит букву, отличающуюся от допустимых, программа должна повторно приглашать его ввести правильное значение до тех пор, пока он это не сделает.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.08.2013, 18:22     Error C2044 #8
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
#include <iostream>
#include <windows.h>
 
using namespace std;
 
#define rus setlocale(0, ""); SetConsoleCP(1251); SetConsoleOutputCP(1251);
 
void main()
{
    rus;
    cout << "a) хищник\tc) музыкант\n";
    cout << "b) дерево\td) игра\n";
    char value;
    int flag = 0;
    while (!flag)
    {
        cin >> value;
        switch (value)
        {
            case 'a': 
            case 'A': cout << "Тигр - хищник\n"; 
                flag = 1;
                break;
            case 'b':
            case 'B': cout << "Клён - дерево\n"; 
                flag = 1;
                break;
            case 'c':
            case 'C': cout << "Цой - музыкант\n"; 
                flag = 1;
                break;
            case 'd':
            case 'D': cout << "Покер - игра\n"; 
                flag = 1;
                break;
            default: break;
        }
        if (!flag) cout << "Ещё раз..." << endl;
        
    }
    system("pause");
}
Chang875
1 / 1 / 0
Регистрация: 14.01.2015
Сообщений: 12
01.03.2015, 23:40     Error C2044 #9
мой вариант решения немного отличается от предшественников, может кому - то будет более понятен такой вариант.
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
#include <iostream>
#include <cctype>
#include <string>
using namespace std;
int main()
{
    setlocale(LC_ALL, "russian");
    char choice;
    
    do
    {   
        cout << "Выберите пункт меню: ";
        cout << "\t Меню: \n\n";
        cout << "c) Танцы\t p) Песни\n";
        cout << "t) Стихи\t g) Игры\n\n";
        cout << "Введите для выбора пункта: c, p, t, или g: ";
        cin >> choice;
        if (choice != 'c' && choice != 'p' && choice != 't' && choice != 'g')
        {
            cout << "Введите для выбора пункта: c, p, t, или g: ";
             cin >> choice;
        }
    } while (choice != 'c' && choice != 'p' && choice != 't' && choice != 'g');
    switch (choice)
    {
    case 'c':
        cout << "\nТанго втроем\n " << endl;
    break;
        case 'p':
            cout << "\nКалинка - Малинка\n " << endl;
        break;
            case 't':
                cout << "\nДай Джек на счастье лапу мне\n " << endl;
            break;
                case 'g':
                    cout << "\nСкайрим\n " << endl;
                break;
    }
 
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2015, 09:09     Error C2044
Еще ссылки по теме:

C++ [C++ Error] Unit1.cpp(6): E2141 Declaration syntax error
[ilink32 Error] Error: Unresolved external 'zamena (int * *) ' referenced C++
C++ Error LNK1120, error LNK2019, error LNK2028, queue

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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
02.03.2015, 09:09     Error C2044 #10
Chang875,
Красивее будет так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
do
    {   
        cout << "Выберите пункт меню: ";
        cout << "\t Меню: \n\n";
        cout << "c) Танцы\t p) Песни\n";
        cout << "t) Стихи\t g) Игры\n\n";
        cout << "Введите для выбора пункта: c, p, t, или g: ";
        choice=getch(); // для getch не надо нажимать enter после буквы, #include <conio.h>
        if (choice == 'c' || choice == 'p' || choice == 't' || choice == 'g')
            break;
        else
           cout<<"Ошибка\n";
    } while (true);
Yandex
Объявления
02.03.2015, 09:09     Error C2044
Ответ Создать тему
Опции темы

Текущее время: 23:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru