ncurses menus - ne seront pas afficher ma chaîne entrée utilisateur
Question
Quand je crée une chaîne littérale et l'ajouter au menu, tout fonctionne bien. Mais si je entrée une chaîne de l'utilisateur, le menu est « vide ». Je ne sais pas si cela est un problème malédictions / menu, ou un problème de C, comme je suis un débutant à la fois.
#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;
}
La solution
Le problème est le « \ n » à la fin de la chaîne de caractères entrée. La suppression qui fera ce travail.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow