gpt4 book ai didi

c++ - C/C++ - 有符号字符比较

转载 作者:太空宇宙 更新时间:2023-11-04 05:59:51 26 4
gpt4 key购买 nike

我试图跳过 UTF-8 编码文件中的 BOM,但我在 ifs 中的测试失败了:

int i = 0;

if( str[i] == '\0xef' ) {
++i;
}

if( str[1] == '\0xbb' ) {
++i;
}

if( str[2] == '\0xbf' ) {
++i;
}

我不知道为什么它们不起作用。有符号和无符号之间必须存在某种隐式转换,Visual Studio 在调试时显示具有 2 个八位字节的字符代码,即使我使用的是 1 字节字符。

这是怎么回事?谢谢:)

最佳答案

你的代码应该是

int i = 0;

if( str[i] == 0xef ) {
++i;
}

if( str[1] == 0xbb ) {
++i;
}

if( str[2] == 0xbf ) {
++i;
}

关于c++ - C/C++ - 有符号字符比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21019311/

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