我有一个名为 output.txt 的文件,我想在其中打印根(√)符号。 这是我的程序
#include<stdio.h>
#include<conio.h>
void main(void)
{
FILE *fptr;
fptr = fopen("output.txt","w+"); //open the file to write
fprintf(fptr,"\xfb"); // \xfb is the hexadecimal code for root symbol
fclose(fptr);
}
但是当我运行程序(û)时会打印
答案 0 :(得分:4)
您遇到的问题是因为您尝试使用部分扩展ASCII集(即:值大于127的字符)。 代码页是您设置的,因此如果设置了8位ASCII符号的MSB,它可以根据区域/区域设置,操作系统等映射到许多不同代码页中的一个(即:希腊语,拉丁语等)。在大多数情况下,ASCII字符通常被认为是7位,忽略了代码页启用位。
尝试使用扩展ASCII不是一种可移植的方法,因此您最好的选择是:
以下示例解决了原始问题。
源代码
#include <stdio.h>
void main(void) {
FILE *fptr;
fptr = fopen("output.txt","w+"); //open the file to write
fprintf(fptr, "\u221A\n");
fclose(fptr);
}
样本运行的输出
√
<强>参考强>
<https://stackoverflow.com/questions/16359225/how-to-print-extended-ascii-characters-127-to-160-in-through-a-c-program>
<http://www.fileformat.info/info/unicode/char/221a/index.htm>