gpt4 book ai didi

c++ - C/C++ ncurses 卡住

转载 作者:行者123 更新时间:2023-11-28 05:43:11 26 4
gpt4 key购买 nike

我目前正在试验一个小型 ncurses 应用程序。

应该做的是通过串行接收消息,该消息用 : 分隔,然后它应该在单独的窗口中显示不同的值。我用 strtok 来“拆分”它。

我的一切正常,除了窗口文本更新,它正确地更新了一个窗口,并且一旦我更新了下一个窗口它就卡住了。现在,我用这个尝试了很多不同的东西,并且不得不恢复到一种非常粗糙的方式只是为了简单化它。请看这段代码:

while(1){


read (fd, in,20);


s = strtok(in,":");




while (s != NULL)
{

mvwprintw(winrpm,1,1,s);
s = strtok(NULL, ":");
mvwprintw(wintrans,1,1,s);
}

refresh();
wrefresh(winrpm);
wrefresh(wintrans);


//refresh();
}

如果我删除第二个 mvwprintw,一切都会按预期工作,但是有了那个,它会在第一次更新后卡住。

有什么想法吗?我知道我应该包括我所有的代码,但它的 98% ncurses 窗口绘图和颜色等等..

最佳答案

你可以试试这个。如果第一个 strtok 不为 NULL,则将 token 打印到 winrpm 并且 while 将尝试获取另一个 token ,如果成功则将 token 打印到 winrpm wintrans.

while(1){

read (fd, in,20);

if ( ( s = strtok ( in, ":")) != NULL) {
mvwprintw ( winrpm, 1, 1, s);
while ( ( s = strtok ( NULL, ":")) != NULL) {
{
mvwprintw ( winrpm, 1, 1, s);
mvwprintw ( wintrans, 1, 1, s);
}
}
refresh();
wrefresh(winrpm);
wrefresh(wintrans);
}

关于c++ - C/C++ ncurses 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36717187/

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