gpt4 book ai didi

c - printf 打印错误的特殊字符

转载 作者:行者123 更新时间:2023-11-30 16:31:22 33 4
gpt4 key购买 nike

我正在编写 C/C++ 代码,该代码将 char 转换为其整数值,然后需要将其打印回其 char 值。

但是,当我尝试使用 printf 函数打印“扩展 ASCII”字符时,它显示了不同的字符,我无法弄清楚出了什么问题。

int charInt = (int) 'á'; // -31
char casted = (char) charInt;
printf("%c\n", casted); // ß

如果我调试代码(我使用的是 Visual Studio 2017),变量“casted”会在 IntelliSense 中显示正确的“á”值。

我测试了一些不同的打印该字符的方法,但它总是具有相同的结果:

printf("test: %d\n", (signed char)'á');   // -31
printf("test: %d\n", (unsigned char)'á'); // 225
printf("test: %c\n", -31); // ß
printf("teste: %s\n", "á"); // ß
printf("test: %c\n", 225); // ß
printf("test: %d\n", 'á'); // -31
putc(-31, stdout); // ß

我做错了什么?

最佳答案

正如我的问题评论中所述,这是一个区域设置问题。

我只需要使用 setlocale() 并且控制台中的输出有效。

关于c - printf 打印错误的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50660986/

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