考虑以下代码:
#include <stdio.h>
#include <locale.h>
int main()
{
char test[100];
printf("WITHOUT LOCALE: á, é, í, ó, ú, ü, ñ, ¿, ¡\n");
setlocale(LC_CTYPE, "Spanish");
printf("WITH LOCALE: á, é, í, ó, ú, ü, ñ, ¿, ¡\n");
fgets(test, 100, stdin);
printf("WITH FGETS AND LOCALE: %s\n", test);
return 0;
}
fgets的以下输入:
á, é, í, ó, ú, ü, ñ, ¿, ¡
我希望它能够根据事先设置的语言环境支持特殊字符。但是,这是输出:
WITHOUT LOCALE: ß, Ú, Ý, ¾, ·, ³, ±, ┐, í
WITH LOCALE: á, é, í, ó, ú, ü, ñ, ¿, ¡
WITH FGETS AND LOCALE: , ', ¡, ¢, £, ?, ¤, ¨,
有关可能发生的事情的任何想法?