0
Lorsque je crée une chaîne littérale et que je l'ajoute au menu, tout fonctionne correctement. Mais si je saisis une chaîne de l'utilisateur, le menu est "vide". Je ne sais pas si c'est un problème de curses/menu, ou un problème de C, car je suis un débutant dans les deux cas.Menus ncurses - n'affiche pas la chaîne entrée par l'utilisateur
#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;
}
Je l'ai eu à travailler, en changeant l'appel à fgets à scanf ("% s", my_string); à la place. Je ne sais pas vraiment quelle est la différence. Je considérerai ceci "résolu". – Kirkland