我正在使用PDCurses,我想用它来显示电影列表。
我的代码是这样的:
typedef struct{
int nId; /* Id du film */
int nId_Genre; /* Id du genre */
int nId_Distributeur; /* Id du distributeur */
char* pszTitre; /* Titre du film */
char* pszResume; /* Resumé du film */
char* pszDate_Debut; /* Date de début du film */
char* pszDate_Fin; /* Date de fin du film */
int nDuree; /* Durée du film */
int nAnnee; /* Année du film */
struct FILMS_NEW* pNext; /* Pointeur sur le prochain film */
}FILMS_NEW;
typedef FILMS_NEW * PFILMS_NEW;
int DisplayListFilms(){
PFILMS_NEW pFilm;
int nCount=0,nSizeString;
int i=9;
WINDOW *menu_win;
int startx = 0;
int starty = 0;
initscr();
start_color(); /* Start color functionality */
clear();
noecho();
cbreak(); /* Line buffering disabled. pass on everything */
startx = (180 - WIDTH) / 2;
starty = (40 - HEIGHT) / 2;
init_pair(1, COLOR_GREEN, COLOR_BLACK);
attron(COLOR_PAIR(1));
attron(A_BOLD);
mvprintw(1, startx+6, "*************************************\n");
mvprintw(2, startx+6, "**** ******");
mvprintw(3, startx+6, "**** LISTE OF FILMS ******");
mvprintw(4, startx+6, "**** ******");
mvprintw(5, startx+6, "*************************************");
mvprintw(7, 0,ENTETE_F);
refresh();
if ((pFilm = pRootFilm) == NULL)
return 0;
while (pFilm)
{
mvprintw(i, 0, (char *)pFilm->nId);
mvprintw(i, 5, (char *)pFilm->nId_Genre);
mvprintw(i, 10, (char *)pFilm->nId_Distributeur);
mvprintw(i, 15, pFilm->pszTitre);
mvprintw(i, 20, pFilm->pszResume);
mvprintw(i, 25, pFilm->pszDate_Debut);
mvprintw(i, 30, pFilm->pszDate_Fin);
mvprintw(i, 35, (char *)pFilm->nDuree);
mvprintw(i, 40, (char *)pFilm->nAnnee);
pFilm = pFilm->pNext;
nCount++;
i++;
}
return nCount;
}
为什么不起作用?如果我将mvprintw(i,0,“ toto”)放进去,为什么还能工作?
消脂酶帮助!!!!下个月我需要做:)
最佳答案
从您的代码看来,您mvprintw()
的用法是错误的。根据man page,synax为
int mvprintw(int y, int x, char *fmt, ...);
因此,您需要像
mvprintw(i, 0, "%d", pFilm->nId); //for ints
.
.
mvprintw(i, 15, "%s", pFilm->pszTitre); // for strings