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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Metal_666_
15 / 15 / 2
Регистрация: 19.10.2009
Сообщений: 187
#1

switch есть небольшие затруднения - C++

25.11.2009, 00:01. Просмотров 1602. Ответов 5
Метки нет (Все метки)

Есть программа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <windows.h>
#include <iostream.h>
int main()
{
        char *ch;
   cout<<"Enter ab,asd,voro or n"<<endl;
   cin>>ch;
 
   switch (*ch)
      {
         case 'ab':cout<<"YES"<<endl;break;
         case 'asd':cout<<"YES"<<endl;break;
         case 'voro':cout<<"YES"<<endl;break;
         case 'n':cout<<"YES"<<endl;break;
         default:cout<<"NO!"<<endl;
      }
   system ("pause");
   return 0;
}
Когда отслеживаю переменную ch все нормально,но когда доходит до свича,всегда переходит на default,даже если по условию должно подходить,в чем дело и как с этим бороться??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2009, 00:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос switch есть небольшие затруднения (C++):

Затруднения в составлении программы с условными операторами if.else.switch - C++
Здравствуйте! Нужна ваша помощь в составлении программы с условными операторами if else После расчета первой системы уравнений ее...

Затруднения с условным оператором switch ( типы данных) - C++
Здравствуйте! Не могу понять, как сделать без ошибки &quot; Unit1.cpp(29): E2227 Extra parameter in call to sqrt(double)&quot;. Я понимаю, что n в...

Затруднения с циклом do-while - C++
Здравствуйте! Дано задание: Используя оператор цикла do-While, составить программу, которая вычисляет сумму уравнения , при этом х...

затруднения с ShowMessage - C++
Есть два поля ввода, в каждое из них должно вводится не пустое значение, иначе должна быть проверка ввода значений. Написал бодро первую...

Затруднения в программе - C++
Здравствуйте. Когда писала программу столкнулась с вот таким вопросом от преподавателя: float time_max(int n, float *Uvx, float *t) ...

Затруднения по динамическим переменным - C++
Всем привет! Когда создаю динамическую переменную, то чтобы вывести ее значение, то пишу *переменная. Если выделяю массив, то обращаюсь...

5
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
25.11.2009, 00:11 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <windows.h>
#include <iostream.h>
int main()
{
        char *ch;
   cout<<"Enter ab,asd,voro or n"<<endl;
   cin>>ch;
 
   switch (ch)
      {
         case "ab":cout<<"YES"<<endl;break;
         case "asd":cout<<"YES"<<endl;break;
         case "voro":cout<<"YES"<<endl;break;
         case "n":cout<<"YES"<<endl;break;
         default:cout<<"NO!"<<endl;
      }
   system ("pause");
   return 0;
}
0
Metal_666_
15 / 15 / 2
Регистрация: 19.10.2009
Сообщений: 187
25.11.2009, 00:15  [ТС] #3
Цитата Сообщение от M128K145 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <windows.h>
#include <iostream.h>
int main()
{
        char *ch;
   cout<<"Enter ab,asd,voro or n"<<endl;
   cin>>ch;
 
   switch (ch)
      {
         case "ab":cout<<"YES"<<endl;break;
         case "asd":cout<<"YES"<<endl;break;
         case "voro":cout<<"YES"<<endl;break;
         case "n":cout<<"YES"<<endl;break;
         default:cout<<"NO!"<<endl;
      }
   system ("pause");
   return 0;
}
Пробывал так,компилятор выдает ошибку на строчке switch (ch)
0
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 206
25.11.2009, 04:25 #4
попробуй так, перед свитчем
ch=&ch
0
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
25.11.2009, 04:46 #5
А ну конечно.
[C++ Error] Unit1.cpp(13): E2383 Switch selection expression must be of integral type


Так что, насколько я знаю, char переменную переключателем не переключишь
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.11.2009, 04:51 #6
C
1
2
3
4
    switch (*ch) {
    case 'a' : 
        cout << "YES" << endl;
        break;
там целое значение должно стоять

C
1
2
3
   char *ch;
   cout << "Enter ab,asd,voro or n" << endl;
   cin >> ch;
память не выделил

чтобы не переделываеть на char c;
сделай строку string и выбирай вариант через if'ы
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2009, 04:51
Привет! Вот еще темы с ответами:

Затруднения с ответом по теоретической части - C++
Здравствуйте! К вам вопрос по теоретической части, на который есть предпосылки в интернете, но ответа сформулированного нет. Цикл while в ...

Затруднения с Wise Installer"ом - C++
Постоянно возникает одна и таже ошибка прои компиляции просто при пробном запуске или сохранении в Wise for Windows Installer 3.0,...

Затруднения с выводом системного времени в программе - C++
Здравствуйте! Подскажите пожалуйста, как исправить ошибку. У меня две формы. Первая - примитивная авторизация по ключу, вторая...

Затруднения с итерацией и подсчетом количеста функций - C++
Подскажите, что не так делаю #include &lt;iostream&gt; #include &lt;conio.h&gt; //для _getch() #include &lt;math.h&gt; //для pow(), sqrt() ...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
25.11.2009, 04:51
Ответ Создать тему
Опции темы

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