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

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

Войти
Регистрация
Восстановить пароль
 
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
#1

Error C2044 - C++

29.08.2013, 17:49. Просмотров 730. Ответов 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
#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
Модератор
Эксперт CЭксперт С++
12892 / 7278 / 811
Регистрация: 27.09.2012
Сообщений: 17,977
Записей в блоге: 2
Завершенные тесты: 1
29.08.2013, 17:56     Error C2044 #2
так пишут же
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
В строке default: continue; - ошибка С2044 недопустимый continue.
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
29.08.2013, 17:56     Error C2044 #3
switch - не цикл, зачемь тут continue?
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
Модератор
Эксперт CЭксперт С++
12892 / 7278 / 811
Регистрация: 27.09.2012
Сообщений: 17,977
Записей в блоге: 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
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
29.08.2013, 18:03  [ТС]     Error C2044 #7
Цитата Сообщение от eXtream Посмотреть сообщение
А где у вас, собственно, само сравнение симвалов? Вам нуже цикл. Читайте внимательно задачу
Напишите предшественник программы, управляемой меню. Она должна отображать меню из четырех пунктов, каждый из них помечен буквой. Если пользователь вводит букву, отличающуюся от допустимых, программа должна повторно приглашать его ввести правильное значение до тех пор, пока он это не сделает.
alsav22
5415 / 4811 / 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
Еще ссылки по теме:

Ошибка в тестовом примере: "Error 1 error C2143: syntax error : missing ';' before 'if'" C++
Исправить ошибку в WxDev-C++: Error with debugging process: GDB Error: error, No source file named main.cpp C++
Причина ошибки [ilink32 Error] Error: Unable to perform link C++
Error C2760: синтаксическая ошибка / Fatal error C1004: непредвиденное обнаружение конца файла C++
Проверить правильность кода. Вылезает Error 5 error C2679: binary '<<' : no operator found which takes a right C++

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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,994
Завершенные тесты: 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
Ответ Создать тему
Опции темы

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