C C++ Êä³öÖÐÎÄ¡¾×ª¡¿
1. wprintf
Q : sizeof(wchar_t) = ?
A : Ëæ±àÒëÆ÷²»Í¬¡£(ËùÒÔ:ÔÚÐèÒª¿çƽ̨µÄʱºò¾¡Á¿²»ÓÃwchar_t) vc : sizeof(wchar_t) = 2;
Q: ÔÚvcÖУ¬ÎªÊ²Ã´Ö±½ÓʹÓÃwprintf(L"²âÊÔ1234")»áûÓнá¹û
A: ûÓÐÉèÖúÃlocale,ÕâÑù×ö
setlocale(LC_ALL ,
"
chs
"
);
wprintf(L
"
%s
"
,L
"
²âÊÔ1234
"
);
»òÕß(¼ÙÉ赱ǰ»î¶¯codepageΪchs)
char
scp[
16
];
int
cp
=
GetACP();
sprintf(scp,
"
.%d
"
,cp);
setlocale( LC_ALL, scp );
wprintf(L
"
²âÊÔ1234
"
);
2. wcout
Ò»Ñù£¬²»¹ýÉ趨locale,ÇëÓÃstd::locale
locale loc(
"
chs
"
);
wcout.imbue(loc);
wcout
<<
L
"
²âÊÔ1234
"
<<
endl;
ÕâÆªÎÄÕÂÓ¦¸ÃÊÇ[netsin
]µÄ³É¹û£¬ÎÒÇڿ죬¼ÇÏÂÀ´¡£
×¢£ºwprintfÊÇCµÄ±ê×¼¿âº¯Êý£¬µ«wcout²»ÊÇC++µÄ±ê×¼³ÉÔ±£¬C++ÖÐµÄ L"……" ÊÇ¿í×Ö·û£¬È´Î´±ØÊÇunicode×Ö·û£¬ÕâÓë±àÒëÆ÷ʵÏÖÏà¹Ø¡£
[ǬÀ¤Ò»Ð¦
]
˵£ºÎªÊ²Ã´ C/C++ ÓïÑÔ°Ñ L"xx" ¶¨ÒåΪÓÉʵÏÖ¾ö¶¨µÄÄØ£¿ÕâÏÔÈ»ÊÇΪÁË C/C++ µÄÆÕÊÊÐÔ¡¢¿ÉÒÆÖ²ÐÔ¡£Bjarne
µÄ¹ÛµãÈÏΪ£¬C++ µÄ·½Ê½ÊÇÔÊÐí³ÌÐòԱʹÓÃÈκÎ×Ö·û¼¯×÷Ϊ´®µÄ×Ö·ûÀàÐÍ¡£ÁíÍ⣬unicode
±àÂëÒѾ·¢Õ¹ÁËÈô¸É°æ±¾ÁË£¬ÊÇ·ñÄÜÓÀ¾ÃÊʺÏÏÂÈ¥Ò²²»µÃ¶øÖª¡£ÓÐ¹Ø unicode µÄÏêϸÂÛÊöÒÔ¼°ºÍÆäËü×Ö·û¼¯µÄ±È½Ï£¬ÎÒÍÆ¼öÄã¿´¡¶ÎÞ·Ï»°xml¡·¡£
ÒÔÏÂÁ½¶Î´úÂëµÄÖ´Ðл·¾³ÊÇ windows xp professional Ó¢Îİ棬±àÒëÆ÷ÊÇ VS2005RTM¡£
// C
#include <stdio.h>
#include <locale.h>
int main( void )
{
setlocale( LC_ALL, "chs" );
//setlocale( LC_ALL, "Chinese-simplified" );
//setlocale( LC_ALL, "ZHI" );
//setlocale( LC_ALL, ".936" );
wprintf( L"Öйú" );
return 0;
}
// C++
#include <iostream>
#include <locale>
using namespace std;
int main( void )
{
locale loc( "chs" );
//locale loc( "Chinese-simpl
Ïà¹ØÎĵµ£º
Ò»¡¢ÐÞÊÎÃû£¨Decorated Name£©
C/C++³ÌÐòÖеĺ¯ÊýÔÚÄÚ²¿ÊÇͨ¹ýÐÞÊÎÃûÀ´±êʶµÄ¡£ÐÞÊÎÃûÊÇÔÚº¯Êý¶¨Òå»òÔÐͱàÒë½×¶ÎÓɱàÒëÆ÷´´½¨×Ö·û´®¡£µ±ÄãÔÚLINKµÈ¹¤¾ßÖÐÒªÖ¸¶¨Ò»¸öº¯ÊýÃûʱ£¬»áÓõ½ÐÞÊÎÃû¡£
1¡¢Ê¹ÓÃÐÞÊÎÃû£º
´ó¶àÊýÇé¿öÏ£¬Äã²»±ØÖªµÀº¯ÊýµÄÐÞÊÎÃûÊÇʲô¡£Á¬½ÓÆ÷µÈ¹¤¾ßͨ³£¶¼ÄÜ´¦Àíº¯ÊýδÐÞÊεÄÃû×Ö¡£È»¶ø£¬ÔÚÓÐЩÇé ......
ÔÚ¿´´úÂëʱ¿´µ½ÈçϵĴúÂ룺
#ifdef __cplusplus
extern "C" {
#endif
ÃæÊÔʱ±»Îʵ½¹ý£¬²»ÉõÃ÷ÁË£¬ÍøÉϰٶÈһϣ¬ÕûºÏÁËÁ½¸öÈÊÐÖµÄÎÄÕ£¬ÈçÏ¡£:-)
ʱ³£ÔÚcppµÄ´úÂëÖ®Öп´µ½ÕâÑùµÄ´úÂë:
#ifdef __cplusplus
extern "C" {
#endif
//Ò»¶Î´úÂë
#ifdef __cplusplus
}
#endif
¡¡¡¡
Õ ......
Gcc¼ò½é
LinuxϵͳϵÄgcc£¨GNU C Compiler£©ÊÇGNUÍÆ³öµÄ¹¦ÄÜÇ¿´ó¡¢ÐÔÄÜÓÅÔ½µÄ¶àƽ̨±àÒëÆ÷£¬ÊÇGNUµÄ´ú±í×÷Æ·Ö®Ò»¡£gccÊÇ¿ÉÒÔÔÚ¶àÖÖÓ²ÌåÆ½Ì¨ÉϱàÒë³ö¿ÉÖ´ÐгÌÐòµÄ³¬¼¶±àÒëÆ÷£¬ÆäÖ´ÐÐЧÂÊÓëÒ»°ãµÄ±àÒëÆ÷Ïà±Èƽ¾ùЧÂÊÒª¸ß20%~30%¡£
gcc ±àÒëÆ÷Äܽ«C¡¢C++ÓïÑÔÔ´³ÌÐò¡¢»ã³Ìʽ»¯ÐòºÍÄ¿±ê³ÌÐò±àÒë¡¢Á¬½Ó³É¿ÉÖ´ÐÐÎļþ£¬Èç¹ûûÓи ......
/*ÓÃif¶à²ãǶÌ×ʵÏÖa£¬b£¬c´óСµÄÁùÖÖÅÅÐòÇé¿öa>b>c£¬a>c>b£¬c>a>b£¬c>b>a£¬b>c>a£¬b>a>c*/
#include<stdio.h>
void main()
{
unsigned int a,b,c;
printf("please input three numbers a,b,c:");
scanf("%d%d%d",&a,&b,&c);
if ......