0

ncurses ライブラリ ファイルを使用してテキスト エディタ プログラムを作成していますが、enterキーを押した後にカーソルを新しい行に移動することができません。switch caseどのキーが押されたかを判断するために使用し、変数を変更して現在の位置を判断しています。すべて正常に動作しますが、カーソルを押した後にEnter移動しません。関数を使用していmove(y,x)ます。

while((ch = getch())!= KEY_F(1))
{
    switch(ch)
    {
        case KEY_LEFT:
            if(posx>0)
            posx--;
                            //traverse left in my link list

            break;

        case KEY_RIGHT:
            if(posx<=cols && posx<cur_maxx)
                posx++;
                            //traverse right in my link list
            break;

        case 263:
            if(posx>0)
               posx--;
                           //delete one node in link list
            break;

        case KEY_ENTER:
            posx=0;
            posy=10;  //for testing 
                            //add new line at end of link list
            break;

        default:
             c=ch;
             getyx(stdscr,y,x);
             //add the character to the linked list based on its               
                             //position(insert at prev or append)

            break;

    }   

    clear();        
    traverse(mn);//it is for printing the characters
    move(y+posy,x+posx);

    refresh();

}

すべてが左キーと右キーで正常に機能しますが、Enter キーを押した後、カーソルが前の位置でハングアップし、出力が新しい行になりました。Enter キーを押した後にカーソルを正常に移動するにはどうすればよいですか? (ncurses を使用して) カーソルを移動する他の方法はありますか?

4

1 に答える 1