Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Калькулятор


Автор: yarchik 2.4.2012, 21:14
Вроде все правильно,но вот выбивает ошибку: E2094 'operator>>' not implemented in type 'wistream' for arguments of type 'char'
Помогите,кто может))

Код

//---------------------------------------------------------------------------
//
#include<iostream.h>
#include<conio>
#include<clocale>
main()
{
    int a,b,sum;
    char op;
//--------------------------------------
   setlocale(LC_ALL,"");
   wcout<<L"Введите 1 число \n";
   wcin>>a;
   wcout<<L"Введите 2 число\n";
   wcin>>b;
   wcout<<L"Действие \n";
   wcin>>op;

//-----------------------------------------
 switch (op)
 {
  case '+':
    sum=a+b;
    wcout<<L"Сума равна "<< sum <<endl;
   break;
   case '-':
     sum=a-b;
     wcout<<L"Разница равна "<< sum <<endl;
   break;
   case '*':
     sum=a*b;
     wcout<<L"Множитель равно "<< sum <<endl;
   break;
   case '/':
     sum=a/b;
     wcout<<L"Делитель равно "<< sum <<endl;
   break;
 default:
 wcout<<L"Вы ввели не верный знак\n";

 }
 getch();
 return 0;

}

Автор: borisbn 3.4.2012, 06:19
Замени char на wchar_t, а в case добавь L к константам : L'+' L'-' и т.д.

Автор: yarchik 3.4.2012, 06:47
Спасибо,все работает можно было и не добавлять к константам  : L'+' L'-' и т.д. smile 

Автор: LeonidPr 3.4.2012, 07:04
Это потому что символы +-=/ находятся в нижней части ascii таблицы, я так понял, их так и оставили для совместимости, присвоив им младшие значения wchar_t от 0 до 127.

Автор: borisbn 3.4.2012, 08:13
Цитата(yarchik @  3.4.2012,  06:47 Найти цитируемый пост)
 можно было и не добавлять к константам

для +-*/ можно и не добавлять, но если придётся ввести какую-нибудь операцию типа И/ИЛИ/НЕ на русском, то будут проблемы

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)