fprintf怎么输出一个字符
fprintf如何输出一个字符
*scNormCharacterForm[]= {"我","你","他};
fprintf(fp,"%s\n",*(scNormCharacterForm+1))
为什么得到的是个黑方块呢?如何改
------解决方案--------------------
因为你的系统不支持中文显示啊
------解决方案--------------------
单个是不行的,汉字需要占两个char, 单个只能输出一个char。
char a[] = "你好";
printf("%s\n", a);
输出结果:你好
解释:按理说char只能存一个字节也就是半个汉字,那为什么可以输出我们希望的结果呢?我们用strlen(a)可以得到结果为4,看来确实是一个char只存了一个字节,2个汉字所以需要4个char,由UltraEdit我们可以知道“你好”的二进制编码是:c4 e3 ba c3, 所以a[0],a[1],a[2],a[3],分别对应这四个值。也就是说如果我们单个取a[0]或a[1]的话肯定得不到我想要的汉字,之所以能输出正确的结果是由于编译器会从左至右尽量多的读入合法的数据,这样a[0]与a[1]组合,a[2]与a[3]组合就输出了我们想要的汉字。
------解决方案--------------------
有可能是字符编码的缘故。
------解决方案--------------------
*scNormCharacterForm[]= {"我","你","他};
fprintf(fp,"%s\n",*(scNormCharacterForm+1))
为什么得到的是个黑方块呢?如何改
------解决方案--------------------
因为你的系统不支持中文显示啊
------解决方案--------------------
单个是不行的,汉字需要占两个char, 单个只能输出一个char。
char a[] = "你好";
printf("%s\n", a);
输出结果:你好
解释:按理说char只能存一个字节也就是半个汉字,那为什么可以输出我们希望的结果呢?我们用strlen(a)可以得到结果为4,看来确实是一个char只存了一个字节,2个汉字所以需要4个char,由UltraEdit我们可以知道“你好”的二进制编码是:c4 e3 ba c3, 所以a[0],a[1],a[2],a[3],分别对应这四个值。也就是说如果我们单个取a[0]或a[1]的话肯定得不到我想要的汉字,之所以能输出正确的结果是由于编译器会从左至右尽量多的读入合法的数据,这样a[0]与a[1]组合,a[2]与a[3]组合就输出了我们想要的汉字。
------解决方案--------------------
有可能是字符编码的缘故。
------解决方案--------------------