我无法打印这个特殊符号 \xc3\xbf (ASCII 152)。查看调试器,我可以看到变量正在保存特殊符号。目前它只打印一个空格。
\n\n我的简化代码看起来像这样
结构:
\n\ntypedef struct BufferDescriptor {\n char* cb_head;\n}* pBuffer;\n\n//Current object\npBuffer ptr_Buffer;\nRun Code Online (Sandbox Code Playgroud)\n\n将符号添加到 cb_head 的行:
\n\n//Calling addsymbol, the symbol used is EOF\naddsymbol(ptr_Buffer, EOF);\n\nBuffer* addsymbol(Buffer p, char symbol){\n p->cb_head[add] = symbol;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我的 printf,我已经检查了变量缓冲区的值,它包含 \xc3\xbf 符号。\n但它只是打印出一个空格...是否有一些可能与机器相关的东西或我缺少的有关 ASCII 的东西。
\n\nprintf("%c",buffer);\nRun Code Online (Sandbox Code Playgroud)\n
如果相同的数字在不同的程序中显示不同,则可能是字符编码问题。有很多很多不同的方法可以将数字 152 解释为字符。每个应用程序可以使用不同的编码。听起来您的编辑器以及您要打印的位置都使用不同的编码。
\n\n没有 ASCII 152。ASCII 是 7 位,只能到 127。
\n\n有很多很多的ASCII 扩展编码,添加第 8 位来覆盖 128-255。它们的前 127 个字符共享相同的编码,之后它们就不同了。CP 437 和CP 850为\xc3\xbf152。Latin -1和Windows-1252 \xc3\xbf为 255。大多数现代东西使用UTF-8,它表示\xc3\xbf为两个字节,c3 bf.
152 在 Latin-1 中什么都不是,在 UTF-8 中什么也不是。
\n\n可能发生的情况是有些使用 UTF-8(152 无效),有些使用 CP 850(152 无效\xc3\xbf)。检查 IDE 的字符编码以及您用来显示的内容。