2011-12-05 20:42:23Morris
[筆記] Unicode In C/C++
- 專案屬性選擇「使用 Unicode 字元集」。
- #include <tchar.h>。
- 用 _tmain 代替 main。
- 用 TCHAR 代替 char。
- 字串前後加上 _T( ),字元前後也加上 _T( )。
- 使用 tcsXXX 系列的字串函式取代 strXXX。
- 使用 _tXXX 系列的檔案字串函式,各字串函式的 TCHAR 版為何請查閱 MSDN。
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
int _tmain() {
wchar_t s[100];
setlocale(LC_ALL,"");
int i;
printf("Input String : ");
while(fgetws(s, 100, stdin)) {
for(i = 0; s[i] != 10; i++) { /*10 == end of string*/
_tprintf(_T("%d %wc\n"), s[i], s[i]);
}
wprintf(L"Show String: %s\n", s);
memset(s, 0, sizeof(s));
printf("Input String : ");
}
system("pause");
}
// 讀檔
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
int _tmain() {
wchar_t s[100];
setlocale(LC_ALL,"");
FILE *pFile;
pFile = _tfopen(_T("in.txt"), _T("r"));
int i;
_tprintf(_T("Input String : "));
while(fgetws(s, 100, pFile)) {
for(i = 0; s[i] != L'\0'; i++) { /*10 == end of string*/
_tprintf(_T("%d %wc\n"), s[i], s[i]);
}
wprintf(L"Show String: %s\n", s);
memset(s, 0, sizeof(s));
_tprintf("Input String : ");
_tprintf(_T("\n"));
}
system("pause");
}
不好意思 想請教一下 這種寫法應該是只能用在VC的吧?
gcc可以用嗎?
很久以前寫的,測試了一下讀檔部分,存 .txt 檔好像不太行,存別的檔案(如 .cpp)就可以了。
環境:Code::Blocks 2013-05-22 12:16:03