1. 程式人生 > >[Visual Studio C++] [MFC] setlocale()函式使用講解

[Visual Studio C++] [MFC] setlocale()函式使用講解

一.前言        

       Setlocale()是一個計算機函式,功能是用來配置地域的資訊,設定當前程式使用的本地化資訊。

二.講解

     1.函式的功能

  • setlocale()函式 
   char *setlocale(int category, const char *locale)
   
   設定或讀取地域化資訊。

      2.函式使用     

     ①.原型:

char *setlocale(int category, const char *locale)

     ②.引數:

  • category  這是一個已命名的常量,指定了受區域設定影響的函式類別。
    • LC_ALL
        包括下面的所有選項。
    • LC_COLLATE  字串比較。參見 strcoll()。
    • LC_CTYPE  字元分類和轉換。例如 strtoupper()。
    • LC_MONETARY  貨幣格式,針對 localeconv()。
    • LC_NUMERIC  小數點分隔符,針對 localeconv()。
    • LC_TIME  日期和時間格式,針對 strftime()。
    • LC_MESSAGES  系統響應。
  • locale  如果 locale 是 NULL 或空字串 "",則區域名稱將根據環境變數值來設定,其名稱與上述的類別名稱相同。

     ③.返回值:

    如果成功呼叫 setlocale(),則返回一個對應於區域設定的不透明的字串。如果請求無效,則返回值是 NULL。

     ④.例項:

#include <locale.h>
#include <stdio.h>
#include <time.h>

int main ()
{
   time_t currtime;
   struct tm *timer;
   char buffer[100];

   time( &currtime );
   timer = localtime( &currtime );

   printf("Locale is: %s\n", setlocale(LC_ALL, "en_GB"));
   strftime(buffer,100,"%c", timer );
   printf("Date is: %s\n", buffer);

  
   printf("Locale is: %s\n", setlocale(LC_ALL, "de_DE"));
   strftime(buffer,100,"%c", timer );
   printf("Date is: %s\n", buffer);

   return(0);
}