fgets没有使用设置区域设置

时间:2017-11-28 11:51:35

标签: c locale fgets setlocale

考虑以下代码:

#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:  , ', ¡, ¢, £, ?, ¤, ¨, ­

有关可能发生的事情的任何想法?

0 个答案:

没有答案