st-6ren">
gpt4 book ai didi

wprintf 生成的列不相等

转载 作者:行者123 更新时间:2023-11-30 17:18:27 24 4
gpt4 key购买 nike

我正在使用 wprintf 打印不同大小的 C 字符串。

wprintf(L"%-*.*ls ", PRINTED_WORD_LENGTH, PRINTED_WORD_LENGTH, word->string);
int i;
for (i = 0; i < word->usage_length; i++) {
printf("%d ", word->usage[i]);
}
printf("\n");

如您所见,这些字符串包含一些变音符号。包含这些字符的行的格式不正确(wprintf 在遇到它们时没有使用足够的空格)。有没有办法在不编写新函数的情况下正确设置行格式?

z                                39 46 62 113 
za 101 105
zabawa 132
zasną 123
zatrzymać 88

最佳答案

它们在字节级别对齐正确。只是因为您将其视为 UTF-8 多字节字符,所以您感觉它们没有正确对齐(对于您想要使用的任何文本对齐定义。)

如果您的目标是符合 POSIX 的实现,您也许可以使用 wcswidth(3)功能:是专门为了解决这类问题而指定的(原来是CJKV字符),不过级别有点低。

关于wprintf 生成的列不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29172044/

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