 |
1樓
巨大八爪鱼
2015-10-30 19:54
#include <conio.h> // _getch函數所在文件 #include <locale.h> // setlocale函數所在文件 #include <stdio.h> void main() { setlocale(LC_CTYPE, "chs"); // 指定編碼 char ch = 'A'; // 這是C語言中標準的字符變量 printf("%c\n", ch); // 這是輸出標準字符的方法 wchar_t wch = L'我'; // 這是寬字符變量 wprintf(L"%c\n", wch); // 這是輸出這個寬字符的方法 _getch(); // 暫停,等待按下回車鍵繼續 } 
|
 |
2樓
巨大八爪鱼
2015-10-30 19:56
void sectionB() { char str[] = "This is an ordinary string."; // 這是C語言中的一個普通字符數組 printf("%s\n", str); // 輸出這個字符數組 wchar_t wstr[] = L"這是C語言中的寬字符數組"; wprintf(L"%s\n", wstr); // 這是輸出這個寬字符數組的方法 } void main() { setlocale(LC_CTYPE, "chs"); // 指定編碼 sectionB(); _getch(); // 暫停,等待按下回車鍵繼續 } 
|
 |
3樓
巨大八爪鱼
2015-10-30 20:20
void sectionC() { wchar_t wstr[] = L"這是C語言中的寬字符數組"; printf("sizeof(wchar_t) = %d\n", sizeof(wchar_t)); int length = sizeof(wstr) / sizeof(wchar_t); printf("這個寬字符數組的長度是%d,其中包括末尾的結束符\\0。\n", length); wchar_t *pStr = wstr; wchar_t endlabel = '\0'; while (*pStr != '\0') { wprintf(L"%c\n", *pStr); pStr++; } int i; for (i = 0; i < length; i++) { if (wstr[i] == endlabel) wprintf(L"第%d個字符是結束標記「\\0」。\n", i + 1); else wprintf(L"第%d個字符是「%c」。\n", i + 1, wstr[i]); } wstr[5] = L'哈'; wprintf(L"%s\n", wstr); } 
|
 |
4樓
巨大八爪鱼
2015-10-30 20:25
void sectionD() { char str[] = {'E', 'n', 'g', 'l', 'i', 's', 'h', '\0'}; printf("%s\n", str); wchar_t wstr[] = {L'簡', L'體', L'中', L'文', L'和', 'C', L'語', L'言', '\0'}; wprintf(L"%s\n", wstr); } 
|
 |
5樓
巨大八爪鱼
2015-10-30 20:40
void sectionE() { wchar_t wch; putchar('C'); putwchar(L'哈'); putchar('\n'); printf("請輸入一個漢字:\n"); wch = getwchar(); wprintf(L"您輸入的漢字是: %c\n", wch); printf("請再輸入一個漢字:\n"); wscanf(L"%c", &wch); wprintf(L"您輸入的漢字是: %c\n", wch); // 這裡似乎有一個bug,只能輸入前面的不能輸入後面的 } 
|
 |
6樓
巨大八爪鱼
2015-10-30 20:59
#include <Windows.h> void sectionF() { CHAR ch = 'r'; // CHAR = char LPSTR pStr = "English"; // LPSTR = char * WCHAR wch = L'額'; // WCHAR = wchar_t LPWSTR pwStr = L"簡體中文"; // LPWSTR = wchar_t * // 這些字符串都是只讀的 }
|
 |
7樓
巨大八爪鱼
2015-10-30 21:03
回復:5樓 這裡VS2012提示最好把wscanf(L"%c", &wch);改成安全版本的wscanf_s(L"%c", &wch);。
|
 |
8樓
巨大八爪鱼
2015-10-30 21:08
#include <stdio.h> #include <Windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WCHAR str[40]; wsprintf(str, L"nDmdShow = %d", nCmdShow); MessageBox(NULL, str, L"Welcome", 0); return 0; } 
|
 |
9樓
巨大八爪鱼
2015-10-30 21:10
wsprintf的第二個參數是LPWSTR類型的。 WCHAR[40]是一個數組,相當於WCHAR *,也就是wchar_t *。又因為LPWSTR等價於wchar_t *,所以str變量可以直接傳入第二個參數中使用。
|