Гильдии (тематическое общение) > Гильдия мастеров

С++. Программисты, помогите!

Страницы: (1/3) > >>

Miklstar:

Очень надеюсь, что среди нас есть опытные программисты, которые не оставят своего младшего собрата в беде. Я недавно начал ознакомление с великим и прекрасным языком С++. До этого работал только с HTML, XML. Решил раздвинуть свои границы и столкнулся с парой проблем... во 1. в инете полно всяких "никаких" самоучителей, а найти что-то пригодное и мал-малость новое (в основном всё выпуска 2000-2005года) очень и ОЧЕНЬ! трудно...
...2. даже с учётом хоть каких-то самоучителей, всё равно это не заменит советов опытного человека... так что очень прошу, если можете - очень надеюсь на вашу поддержку...

...а, главное... я вот по какому поводу... я тут попробовал сделать нечто воде примитивного калькулятора... но есть кое какие проблемы и весьма серьёзные...

пользуюсь прогой Dev-C++ 4.9.9.2 и когда в ней запускаю этот код, то выдаёт:
Drawing operation was attempted when there was no current window - такую фигню...собственно, код программы:

#include <stdio.h>
#include <conio.h>
main()
{
int a, b, c;
char per;
      printf ("введите 2 целых числа и нажмите ENTER \n");
      scanf ("%d%d", &a, &b);
      printf ("выберите действие. p -плюс, m -минус, u -умножить и нажмите ENTER \n");
      scanf ("%c", &per);
      switch ( per )
      {
             case 'p':
                  c = a + b;
                  printf ("%d+%d=%d", a, b, c); break;
             case 'm':
                  c = a - b;
                  printf ("%d-%d=%d", a, b, c); break;
             case 'u':
                  c = a * b;
                  printf ("%d*%d=%d", a, b,c); break;
      }
getch();
}


...ошибка появляется после ввода чисел и отображения на экране второго текста... прошу подсказать, из-за чего так получается...

Freya:

Вы пытаетесь присвоить переменой типа целого числа символ
Переменную  С нужно объявить типом char;
для ввода и для вывода значений проще использовать  cin и cout подключив заглавочный файл iostream;

Miklstar:

а почему переменную С нужно ввести символом, если она должна быть результатом выполняемого действия? (причём - арифметического)

...и основной вопрос заключался в том - почему ошибка появляется?

...и можно по-подробнее про cin и cout?

Freya:

#include <iostream>
#include <locale>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{

cout<<"Enter first and secound digits and press Enter"<<endl;;
int a,b;
cin>>a>>b;
cout<<"Enter doing p-plus m-minus u-multyply and press Enter "<<endl;
char c;
cin>>c;
long rez=0;
switch (c)
{
case 'p':
{
rez=a+b;
cout<<a<<" "<<b<<" "<<rez<<endl;
break;
}
case 'm':
{

rez=a-b;cout<<a<<" "<<b<<" "<<rez<<endl;break;
}
case 'u':
{

rez=a*b;cout<<a<<" "<<b<<" "<<rez<<endl;break;
}
}
system("pause");
return 0;
}

вот рабочий код

Miklstar:

... а можно розъяснить? или пояснения к строкам? (а то мои познания пока на базовом, елементарном уровне... а всё же хотелось не тупо наследовать, а понимать, что пишешь)

мне же важен не результат, а сам процесс)) я пока только начал учиться)

Страницы: (1/3) > >>

Перейти к полной версии