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

Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.78
ch_perch
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 11
27.08.2012, 13:40     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #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
#include <iostream>
using namespace std;
int main ()
{
  int a,b;
  char op;
  int res;
  cout << "write constant and sing";
  cin >> a;
  cin >> b;
  cin >> op;
  if (op == "+")
      res = a+b;
  else if (op == "-")
      res = a-b;
       else if (op == "/")
           res = a/b;
            else if (op == "*")
                res = a*b;
                 else cout << "bad operetion!";
 
 
 
 return 0;
}
Так получилось что решил посмотреть видео урок. Это скопированный код из него. Компилирую, выдает выше описанную ошибку. Подскажите пожалуйста что не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gibboustooth
733 / 201 / 11
Регистрация: 23.06.2011
Сообщений: 440
27.08.2012, 13:42     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #2
Для символов используются одинарные кавычки. Двойные - для строк.
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
27.08.2012, 13:42     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #3
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
#include <iostream>
using namespace std;
int main ()
{
int a,b;
char op;
int res;
cout << "write constant and sing";
cin >> a;
cin >> b;
cin >> op;
if (op == '+')
res = a+b;
else if (op == '-')
res = a-b;
else if (op == '/')
res = a/b;
else if (op == '*')
res = a*b;
else cout << "bad operetion!";
 
 
 
return 0;
}
ch_perch
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 11
27.08.2012, 19:06  [ТС]     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #4
Спасибо))
туплю

Добавлено через 5 часов 19 минут
в той же программе пытаюсь сделать "ошибку"(исключение), при делении на ноль, но она не срабатывает.
Деление полностью не работает.
Кликните здесь для просмотра всего текста
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>
using namespace std;
int main ()
{
  int a,b;
  char op,s = 'y';
  int res;
  
  while (s == 'y'||'Y')
  {
        cout << "inter operetion";
        cin >> a >> op >> b;
        switch (op)
            {
            case '+':
              res = a+b;
            break;
            case '-':
              res = a-b;
            break;
            case '*':
              res = a*b;
            break;
            case '/':
                if (b == 0)
                {
                    cout << "bad operetion! delenie na 0!!!" << endl;
                    return 0; // выходит из программы 
                }   
                else res = a/b;
            default :
              cout << "bad operetion!";
              return 0;
            }
 
        cout << res << endl;
        cout << "Continue? y|n";
        cin >> s;
  }
 
 
 return 0;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
27.08.2012, 19:09     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #5
ch_perch, Что значит не работает? Где break после деления?
ch_perch
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 11
27.08.2012, 19:16  [ТС]     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #6
да да ForEver ,спасибо, уже сам тоже увидел...
Блин ну как-то больно нагроможденно прога получается.
При том при всем еще и после ввода неправильного символа или деления на ноль не будет предлагать продолжить.
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
27.08.2012, 19:29     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #7
Цитата Сообщение от ch_perch Посмотреть сообщение
При том при всем еще и после ввода неправильного символа или деления на ноль не будет предлагать продолжить.
вот при делении на ноль или неправильном вводе запрашивает по новой

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
44
45
#include <iostream>
using namespace std;
int main ()
{
  int a,b;
  char op,s = 'y';
  int res;
  
  while (s == 'y'||'Y')
  {        
        bool err;
                do {
                    cout << "inter operetion" << endl;
                    err = false;
                    cin >> a >> op >> b;
                    switch (op) {
                    case '+':
                        res = a+b;
                        break;
                    case '-':
                        res = a-b;
                        break;
                    case '*':
                        res = a*b;
                        break;
                    case '/':
                        if (b == 0) {
                            cout << "bad operetion! delenie na 0!!!" << endl;
                            err = true;
                        }   
                        else res = a/b;
                        break;
                    default :
                        cout << "bad operetion!";
                        err = true;
                    }
                } while (err);
        cout << res << endl;
        cout << "Continue? y|n";
        cin >> s;
  }
 
 
 return 0;
}
ch_perch
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 11
27.08.2012, 19:44  [ТС]     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #8
С оператором Bool (или может не оператором) еще не встречался. щас почитаю о нем.
Спасибо. Открываю для себя язык C++, еще много не понимаю.
Если не трудно подскажите можно ли только за счет используемых до этого операторов: while, switch, if и break'оф с return , решить эту задачу?
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
27.08.2012, 19:55     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #9
Цитата Сообщение от ch_perch Посмотреть сообщение
С оператором Bool (или может не оператором) еще не встречался. щас почитаю о нем.
Спасибо. Открываю для себя язык C++, еще много не понимаю.
bool это логические 1(true\истина) и 0(false\ложь)



Цитата Сообщение от ch_perch Посмотреть сообщение
Если не трудно подскажите можно ли только за счет используемых до этого операторов: while, switch, if и break'оф с return , решить эту задачу?
без использования bool ?
ch_perch
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 11
28.08.2012, 00:27  [ТС]     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #10
Да, без Bool.


я догадался что это логический тип, как и в паскале. только мне не понятно как он используется.
Вы его объявляете прямо в теле программы, это ново для меня)))
в паскале не так было.
Я так понял если Bool принимает значение true в последнем while то цикл заканчивается?

Не успел еще , но узнаю по подробнее об использовании Bool'a в C++
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
28.08.2012, 00:52     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #11
Цитата Сообщение от ch_perch Посмотреть сообщение
Да, без Bool.


я догадался что это логический тип, как и в паскале. только мне не понятно как он используется.
Вы его объявляете прямо в теле программы, это ново для меня)))
в паскале не так было.
Я так понял если Bool принимает значение true в последнем while то цикл заканчивается?

Не успел еще , но узнаю по подробнее об использовании Bool'a в C++
в с++ объявлять переменные можно где угодно
и тут действуют области видимости например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i=0; i != 5; i++)
{
//тут i есть
выполняется цикл
}
 
//тут i уже нету
 
for (int i=4; i != 7; i++)
{
//тут i есть
выполняется цикл2
}
 
//тут тоже нету i
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
28.08.2012, 00:59     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #12
Цитата Сообщение от ch_perch Посмотреть сообщение
деления на ноль не будет предлагать продолжить.

Цитата Сообщение от ch_perch Посмотреть сообщение
C++
1
2
3
4
5
6
7
case '/':
 if (b == 0)
 {
 cout << "bad operetion! delenie na 0!!!" << endl;
 return 0; // выходит из программы 
 } 
 else res = a/b;
конечно не будет и еще из программы выйдет
return то зачем присобачил
C++
1
2
3
4
5
6
case '/':
 if (b == 0)
    cout << "bad operetion! delenie na 0!!!" << endl;
 else
    res = a/b;
break;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2012, 14:26     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int'
Еще ссылки по теме:

OpenCV C++ vs2010 error C2446: :: нет преобразования "const char *" в "_TCHAR *" C++
Реализация функции char *padl(const char *string, int len, int c=' ') C++
Работа со строками - Invalid conversion from 'char' to 'const char*' C++

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

Или воспользуйтесь поиском по форуму:
ch_perch
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 11
28.08.2012, 14:26  [ТС]     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int' #13
DaskOFF спасибо.
Разобрался. Не пользовался еще в C++ оператором do .. while! Это как и в паскале Repeat .. until, постусловие.
Значит если в программе происходит ввод неправильного символа или деление на ноль, в последнем while возвращается истина и цикл повтаряется без вопроса "Continue?".
Еще раз спасибо, очень занимательно для меня )))
Yandex
Объявления
28.08.2012, 14:26     Ошибка error C2446: '==' : no conversion from 'const char *' to 'int'
Ответ Создать тему
Опции темы

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