首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDCurses mvprintw结构错误

PDCurses mvprintw结构错误
EN

Stack Overflow用户
提问于 2015-04-29 21:17:41
回答 1查看 150关注 0票数 0

我正在使用PDCurses,我想用它来展示一个电影列表。

我的代码是这样的:

代码语言:javascript
复制
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")

请救命!我需要在下个月这样做:)

EN

回答 1

Stack Overflow用户

发布于 2015-04-29 22:06:29

从您的代码中可以看出,您对mvprintw()的使用是错误的。根据man page,synax是

代码语言:javascript
复制
int mvprintw(int y, int x, char *fmt, ...);

因此,您需要像这样编写代码

代码语言:javascript
复制
mvprintw(i, 0, "%d", pFilm->nId);  //for ints
.
.
mvprintw(i, 15, "%s", pFilm->pszTitre); // for strings
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29944977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档