这是一个ANSI C问题。我有以下代码。wchar_t vs wint_t
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
int main()
{
if (!setlocale(LC_CTYPE, "")) {
printf("Can't set the specified locale! "
"Check LANG, LC_CTYPE, LC_ALL.\n");
return -1;
}
wint_t c;
while((c=getwc(stdin))!=WEOF)
{
printf("%lc",c);
}
return 0;
}
我需要完整的UTF-8支持,但即使在这个最简单的级别,我能否以某种方式改进它?为什么使用wint_t
,而不是wchar
,并做了适当的更改?
好的,谢谢。所以,简而言之:什么时候使用wchar_t更好?为什么不总是使用wint_t? – 2009-07-04 19:42:40
`wint_t`是``wchar_t`什么`int`是`char`。尽管`getc()`返回`int`能够返回'EOF`,我们不会为窄字符串使用'int'数组。同样,即使`getwc()`返回`wint_t`能够返回`WEOF`,我们也不会为宽字符串使用`wint_t`数组。 – musiphil 2012-05-23 07:29:13
@musiphil:你的评论应该是一个答案,它是唯一一个谈论它们之间的概念*差异的人。 – MestreLion 2015-03-05 19:38:52