###やりたい事
コンソール画面が使えない状況でのデバッグ方法が知りたい。
###質問内容
提示コードのstd::cout関数部ですがncursesライブラリの場合コンソールライブラリのためコンソールに表示させるstd::coutがうまく機能しないのでデバッグに使えません。その場合どんな手段を使ってデバッグすればいいのでしょうか?別の手段を探しています。
###環境
OS: Ubuntu
cpp
1#include <string.h> 2#include <iostream> 3#include "../lib/ncurses/include/curses.h" 4 5int main() 6{ 7 initscr(); //初期化 8 9 int x = 0, y = 0, w, h; 10 //char str[20]="Hello World"; 11 int key; 12 std::string str; 13 14 noecho(); //入力した文字を非表示 15 cbreak(); //Enterキー不要のキー入力 16 keypad(stdscr,TRUE); // 特殊キーを有効化 17 18 19 20 mousemask(REPORT_MOUSE_POSITION,NULL); // マウスイベントを取得 21 MEVENT event; 22 23 while (true) 24 { 25 erase(); //画面削除 26 move(y, x); //移動 27 addstr(str.c_str()); //文字表示 28 refresh(); //画面再表示 29 30 key = getch(); 31 32 33 switch(key) 34 { 35 case KEY_UP: 36 { 37 y--; 38 } 39 break; 40 41 case KEY_DOWN: 42 { 43 y++; 44 } 45 break; 46 47 case KEY_LEFT: 48 { 49 x--; 50 std::cout<<"あああ "<<str; 51 52 } 53 break; 54 55 case KEY_RIGHT: 56 { 57 x++; 58 } 59 break; 60 61 case 'q': 62 { 63 break; 64 } 65 break; 66 67 case KEY_MOUSE: 68 { 69 if(getmouse(&event) == OK) 70 { 71 if(event.bstate & REPORT_MOUSE_POSITION) 72 { 73 std::cout<<event.y<<" "<<event.x; 74 str = std::to_string(event.x); 75 std::cout<<"あああ "<<str<<std::endl; 76 } 77 } 78 } 79 break; 80 81 } 82 83 } 84 85 86 87 endwin(); //終了 88 return 0; 89}
ファイルに出力して、別ウィンドウで tail -f で監視すれば良いのでは。
回答2件
あなたの回答
tips
プレビュー