69,371
社区成员
发帖
与我相关
我的任务
分享
汉字应该用字符串保存,你怎么用int
# include <locale.h>
# include <wchar.h>
# include <stdio.h>
int main (void)
{
setlocale (LC_ALL, "chs");
wprintf (L"->%lc", getwchar ());
}
注:在Linux环境下,程序中的“chs”要改成“zh_CN.UTF-8”(如果默认是UTF-8编码)。
帮了赵4老湿这么大的忙,请赵老湿回答一下,为什么这个程序要用 setlocale 设置区域呢?如果不设置有什么问题?[/quote]
https://www.baidu.com/s?wd=setlocale%20LC_ALL%20chs%20zh_CN.UTF-8
#include<stdio.h>
#include<conio.h>
int main( void )
{
int a=0, b=0;
while(1)
{
a=getch();
printf("%c", a );
}
return 0;
}
注意,getch不回显,这个“哈哈哈”是printf输出来的
#include<stdio.h>
#include<conio.h>
int main( void )
{
int a=0, b=0;
a=getch();
b=getch();
printf("得到%c%c %x %x", a, b, a, b );
return 0;
}
这不是可行吗,B9 FE,这就是汉字'哈'的GBK编码呀# include <locale.h>
# include <wchar.h>
# include <stdio.h>
int main (void)
{
setlocale (LC_ALL, "chs");
wprintf (L"->%lc", getwchar ());
}
注:在Linux环境下,程序中的“chs”要改成“zh_CN.UTF-8”(如果默认是UTF-8编码)。
帮了赵4老湿这么大的忙,请赵老湿回答一下,为什么这个程序要用 setlocale 设置区域呢?如果不设置有什么问题?int printf (const char * restrict, ...);
# include <stdio.h>
int main (void)
{
char b [2048] = {0};
int c, x = 0;
while ((c = getchar ()) != EOF) b [x ++] = c;
printf (b);
}
函数 getchar 每次只读取 1 个字节,然后扩展到 int 类型。所以,我们的任务是将这些字节依次读取并存储起来。这个程序的好处是不必考虑操作系统实际使用的执行字符集,因为发送给程序的字符编码与系统输出(即 printf 内部调用的操作系统接口部分)使用的字符编码方案总是一致的。