| 
          【函数】完全支持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; }              
             | 
|