gpt4 book ai didi

c - 使用 ncurses 打印输出链接列表结构所需的建议

转载 作者:行者123 更新时间:2023-11-30 17:48:20 39 4
gpt4 key购买 nike

我创建了一个链接列表,如下所示:

vId       msisdn         ivrCode   state     DTMF

9 4321 120005 Talking #
3 0000 564765 Standby *
33 1234 120005 Ringing *
12 1234 1223465 Ringing 3
223 9995373 9995 Pending 4
2 435373 3465 Pending 2

这里的每一行都是链表的一个节点,元素显示为列。

现在在我的程序中,我使用 ncurses 的 mvscanw 函数输入字符串并将其传递给函数。
该函数将字符串与所有列表节点的链接列表的 ivrCode 元素进行比较。
如果找到匹配,则它使用 ncurses 的 mvpritnw() 打印具有该 ivrcode 的列表。
如果没有找到则返回。
现在我通过 3465 并按回车键:
所以它应该将输出显示为:

vId       msisdn         ivrCode   state     DTMF

2 435373 3465 Pending 2

但它没有发生:

here's the code fragment:

  void display1(char *r)
{
char * status;
int thisDTMF;
char * code;

struct linklist * curser=listhead;
int count;
mvprintw (2,0, "%s","vId");
mvprintw (2,10, "%s","msisdn" );
mvprintw (2,25, "%s","ivrCode" );
mvprintw (2,35, "%s","state" );
mvprintw (2,45, "%s","DTMF" );
count = 4;
while(curser!=NULL)
{ status=getState(curser->state);
thisDTMF=getDTMF(curser->dtmf);
code=curser->ivrCode;
if((code==r)||(status==r))
{ mvprintw (0,0,"%s","m here");
mvprintw (count,0,"%d",curser->vId);
mvprintw (count,10,"%s",curser->msisdn);
mvprintw (count,25, "%s",curser->ivrCode );
mvprintw (count,35, "%s",status );
if(thisDTMF==35||thisDTMF==42)
mvprintw (count,45, "%c",thisDTMF );
else
mvprintw (count,45, "%d",thisDTMF );
count++;
}
/*else
{mvprintw (3,0, "%s","kuch ni mila" );} */
curser=curser->next;
}

}


void rcvChar(char c)
{ char a;
char *str;
char *rts=(char*)malloc(4*sizeof(char));

switch(c)
{ case 'i':
mvprintw (1,0, "%s","ivrcode:");
mvscanw(1,8,"%s",rts);
mvprintw (1,8, "%s",rts);
//printf("got in rcvchar");
initDisplay();
display1(rts);
dis();
break;
case 's':
mvprintw (1,0, "%s","state change to ( r,t,p,s) ");
a=getch();
initDisplay();
switch(a)
{case 'r':
str="Ringing";
display1(str);
break;
case 't':
str="Talking";
display1(str);
break;
case 'p':
str="Pending";
display1(str);
break;
case 's':
str="Standby";
display1(str);
break;
default:
mvprintw (1,0, "%s","unacceptable State");
display();
break;
}
dis();
break;
}

因此根据状态的行被打印。我猜问题是键盘输入的字符串与 ivrCode/code 不匹配。

有什么建议吗?

最佳答案

rstatuscodechar *,但您正在使用

测试它们
  if((code==r)||(status==r))

尝试使用 strcmp 代替。

关于c - 使用 ncurses 打印输出链接列表结构所需的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18630164/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com