gpt4 book ai didi

C: snprintf 不接受 GUI 显示。需要建议

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:45 25 4
gpt4 key购买 nike

我需要将最后一个有效字符作为 NUL,'\0'

有一个字符数组char cursStr[128];我的意图是:cursStr [lastCharacter where ends] = '\0'

下面是如何填充此数组的代码片段:

snprintf(num_range, sizeof(num_range), "%d-%d", devIndex, devIndex+127);
snprintf(dev_range, sizeof(dev_range), "%s%d...%s%d", devices[devPointer].name, 1, devices[devPointer].name, 128);
sprintf(cursStr, "%-7s %-25.50s %c%-30.30s %5Ld%11s\n",
num_range, dev_range,' ', "Empty", (var64)0, "GPT");

我这样做的原因是,通过在 GUI 中打印,它在最后显示了一些垃圾字符。但是在控制台打印就可以了。我什至尝试对这个数组执行 0 的 memset,但它没有帮助。

这就是它被打印到 GUI 和控制台的方式。

             if (cursLine) {
TVdisplayText(cursLine, cursStr, &usedLines); // GUI
cursLine += usedLines;
} else {
printf("%s\n",cursStr); // console
}

使用的GUI库是TVision(Turbo Vision)

最佳答案

许多 GUI 系统不能正确显示特殊字符,如换行符。要么不要在 sprintf 调用中添加换行符,要么手动将其删除:

/* Remove the last character from the string */
cursStr[strlen(cursStr) - 1] = '\0';

关于C: snprintf 不接受 GUI 显示。需要建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14195109/

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