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