|  | 【函数】完全支持Unicode输出的wprintfEx和wputsEx函数 | 
                
          |   一派掌門 二十級 | 
              #include <stdarg.h>#include <strsafe.h>
 #include <Windows.h>
 
 int wprintfEx(const wchar_t *format, ...)
 {
 int n;
 wchar_t buffer[2400];
 va_list args;
 
 va_start(args, format);
 StringCbVPrintfW(buffer, sizeof(buffer), format, args);
 va_end(args);
 n = lstrlenW(buffer);
 WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), buffer, n, NULL, NULL);
 return n;
 }
 
 int wputsEx(const wchar_t *wstr)
 {
 int n = lstrlenW(wstr);
 WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), wstr, n, NULL, NULL);
 return n;
 }
 
 int main(void)
 {
 wprintfEx(L"数量: %d\n内容: %s\n", 200, L"abc中文");
 wputsEx(L"哈哈abc\n");
 return 0;
 }
 | 
                
          |   一派掌門 二十級 |  | 
|
        
                
          |   一派掌門 二十級 | 
              【自动加\n的wputsEx】 int wputsEx(const wchar_t *wstr) {     HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);     int n = lstrlenW(wstr);     WriteConsoleW(hOutput, wstr, n, NULL, NULL);     WriteConsoleW(hOutput, "\n", 1, NULL, NULL);     return n + 1; }   | 
|
        
                
          |   一派掌門 二十級 | 
              【自动加\r\n的wputsEx】int wputsEx(const wchar_t *wstr)
 {
 HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
 int n = lstrlenW(wstr);
 WriteConsoleW(hOutput, wstr, n, NULL, NULL);
 WriteConsoleW(hOutput, L"\r\n", 2, NULL, NULL);
 return n + 2;
 }
 
 | 
|