Меню ncurses - не будет отображать мою введенную пользователем строку - PullRequest
0 голосов
/ 23 мая 2009

Когда я создаю буквенную строку и добавляю ее в меню, все работает нормально. Но если я введу строку от пользователя, то меню будет «пустым». Я не знаю, если это проблема с проклятиями / меню или проблема с Си, так как я новичок в обоих.

#include <curses.h>
#include <menu.h>
#include <malloc.h>

int main()
{
    MENU *my_menu;
    ITEM **my_items;
    char c;

// works
    char my_string[20] = "this is the string";

// user-inputted string, comment these 2 lines out to make this program work
    printf("enter something: ");
    fgets(my_string, 19, stdin);

    initscr();
    noecho();
    crmode();

    my_items = (ITEM **)calloc(2, sizeof(ITEM *));
    my_items[0] = new_item(my_string, my_string);
    my_items[1] = (ITEM *)NULL;
    my_menu = new_menu(my_items);

    post_menu(my_menu);
    refresh();

    while ((c = getch()) != 'q') { }

    free_item(my_items[0]);
    free_item(my_items[1]);
    free_menu(my_menu);

    endwin();

    return 0;
}

1 Ответ

1 голос
/ 23 мая 2009

Проблема заключалась в '\ n' в конце введенной строки. Удаление этого сделает эту работу.

...