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

libncurses некорректно работает - C++

Восстановить пароль Регистрация
 
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
28.08.2011, 11:40     libncurses некорректно работает #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <cmath>
#include <ncurses.h>
using namespace std;
class polar
{
private:
    float r;
    float angle;
public:
    polar(float rad, float ang) : r(rad), angle(ang)
    {    }
    void showpolar()
    {
        printw("angle: %f, radius: %f",angle,r);
    }
 polar operator+ ( polar ) const;
};
polar polar::operator+(polar p2) const
{
    float x0=sqrt(pow(r*cos(angle),2)+pow(p2.r*cos(p2.angle),2));
    float y0=sqrt(pow(r*sin(angle),2)+pow(p2.r*sin(p2.angle),2));
    return polar(sqrt(x0*x0+y0*y0), atan(y0/x0)*180/M_PI);
}
int main()
{
        float angle1,radius,radius1,angleee;
     initscr();
    printw("enter 1st point radius: ");
    scanw("%f",&radius);
     printw("enter 1st point angle: ");
    scanw("%f",&angle1);
      printw("enter 2nd point angle: ");
    scanw("%f",&angleee);
      printw("enter 2nd point radius: ");
    scanw("%f",&radius1);
    polar p1(radius, angle1), p3(radius, angleee);
    polar p2=p1+p3;
      p2.showpolar();
     refresh();
     getch();
        endwin();
}
Учусь на Netbeans IDE 6.9, там настроил ncurses, компиляция нормально проходит, но когда выполняется прога, первый scanw, например, как здесь
C++
1
scanw("%f",&radius);
попросту не выполняется, появляется
C++
1
 printw("enter 1st point radius: ");
и сразу, без считывания инфы, идёт
C++
1
  printw("enter 1st point angle: ");
менял местами разные "scanw и printw", любая первая функция scanw не работает. Почему?
и 2 вопрос - как сделать так, чтобы в консоли нормально русские буквы показывались(поэтому prinrw на англ написан))? как сменить кодировку?)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2011, 11:40     libncurses некорректно работает
Посмотрите здесь:

C++ некорректно работает программа
Функция работает некорректно C++
C++ Некорректно работает меню с++
C++ некорректно работает программа
C++ Некорректно работает функция
C++ Некорректно работает
C++ Некорректно работает оператор присваивания
Некорректно работает программа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт С++
 Аватар для grizlik78
1884 / 1416 / 102
Регистрация: 29.05.2011
Сообщений: 2,961
28.08.2011, 13:48     libncurses некорректно работает #2
Цитата Сообщение от Hi4ko Посмотреть сообщение
и сразу, без считывания инфы, идёт
У меня вроде нормально работает. Запускать из терминала пробовал?

Цитата Сообщение от Hi4ko Посмотреть сообщение
и 2 вопрос - как сделать так, чтобы в консоли нормально русские буквы показывались(поэтому prinrw на англ написан))? как сменить кодировку?)
в начало программы вставить
C++
1
setlocale(LC_ALL, "");
и линковать с -lncursesw вместо -lncurses

Добавлено через 29 минут
Да, ещё чтобы десятичные точки в запятые вдруг не превратились лучше локаль устанавливать как-нибудь так:
C++
1
2
setlocale(LC_ALL, "");
setlocale(LC_NUMERIC, "C");
Yandex
Объявления
28.08.2011, 13:48     libncurses некорректно работает
Ответ Создать тему
Опции темы

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