如何使用c语言的写入功能从扩展的ascii中打印字符128?
#include <unistd.h>
int main(void)
{
int c;
c = 128;
write(1, &c, 1);
return(0);
}
输出:
Ascii延长了128:Ç
答案 0 :(得分:2)
使用wchar_t
:
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main(void)
{
wchar_t c;
setlocale(LC_ALL, "");
for (c = 128; c < 256; c++) {
wprintf(L"%lc\n", c);
}
return 0;
}
答案 1 :(得分:2)
编写Unicode版本
uint16_t x = 0x87C3; // little endian (beware endianness matters)
write(1, &x, 2);
(具有2个字节的类型)
要删除任何字节顺序问题,请改用数组
uint8_t y[] = { 0xC3, 0x87 };
write(1, y, 2);