curses動作不良
Posted: 2016年7月09日(土) 10:10
今、Ubuntuからcursesの勉強をしてまして、私が思っていた結果
と違う動きをし悩んだ末、投稿させていただきました。
以下のようなプログラムで
値を12345..と入力しエンターキーを押すとこの行の先頭に行ってしまうのです。youtube参照
[youtube][/youtube]
#include<ncurses.h>
#include<locale.h>
main()
{
int c;
setlocale(LC_ALL,"");
initscr();
echo();
//noecho();
//cooked();
//nonl();
//nonl();
//nocbreak();
//cbreak();
//raw();
//noecho();
//beep();
addstr("関数addch()のテストです\n");
addstr("プログラムを終了するには'e'を入力してください\n");
refresh();
while((c = getchar()) != 'e')
{
addch(c);
refresh();
}
endwin();
return 0;
}
理想だと
12345 enter
12345
になるはず。。
これはデフォルトでcookedモードになっているのかわからないし
getchar( )でバッファリングされているかもわからないなど、、、
Ubutuの端末が問題なのか、cursesのバージョンが問題なのか、
先に進みにくい状態になってしまってます。
どうかよろしくお願いします。
と違う動きをし悩んだ末、投稿させていただきました。
以下のようなプログラムで
値を12345..と入力しエンターキーを押すとこの行の先頭に行ってしまうのです。youtube参照
[youtube][/youtube]
#include<ncurses.h>
#include<locale.h>
main()
{
int c;
setlocale(LC_ALL,"");
initscr();
echo();
//noecho();
//cooked();
//nonl();
//nonl();
//nocbreak();
//cbreak();
//raw();
//noecho();
//beep();
addstr("関数addch()のテストです\n");
addstr("プログラムを終了するには'e'を入力してください\n");
refresh();
while((c = getchar()) != 'e')
{
addch(c);
refresh();
}
endwin();
return 0;
}
理想だと
12345 enter
12345
になるはず。。
これはデフォルトでcookedモードになっているのかわからないし
getchar( )でバッファリングされているかもわからないなど、、、
Ubutuの端末が問題なのか、cursesのバージョンが問題なのか、
先に進みにくい状態になってしまってます。
どうかよろしくお願いします。