设置 | 登录 | 注册

目前共有4篇帖子。

【函数】完全支持Unicode输出的wprintfEx和wputsEx函数

1楼 巨大八爪鱼 2016-6-25 14:28
#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;
}
2楼 巨大八爪鱼 2016-6-25 14:32
3楼 巨大八爪鱼 2016-6-25 14:36
【自动加\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;
}

4楼 巨大八爪鱼 2016-6-25 14:37
【自动加\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;
}

内容转换:

回复帖子
内容:
用户名: 您目前是匿名发表。
验证码:
看不清?换一张
©2010-2025 Purasbar Ver3.0 [手机版] [桌面版]
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。