c++ - “cerr”与“wcerr”的用法和可用的定义宏
问题描述
1.什么时候使用cerr
而不是wcerr
?
尽管cerr
并被指定wcerr
为字符流和宽字符流(分别),但以下所有语句似乎都可以毫无问题地编译(并且在相同的环境中):
std::cerr << "some text" << std::endl;
std::wcerr << "some text" << std::endl;
std::cerr << TEXT("some text") << std::endl;
std::wcerr << TEXT("some text") << std::endl;
这意味着cerr
并且wcerr
是可互换的(至少在上述情况下)。要将其置于其他字符和基于宽字符的对象的上下文中,以下声明中只有 2 个可以正确编译(在与上述相同的系统上):
std::string s1("some text");
std::wstring s2("some text"); // Error
std::string s3(TEXT("some text")); // Error
std::wstring s4(TEXT("some text"));
2.是否有可用的 Windows 宏将标识符适当地定义为cerr
或wcerr
基于编程环境?
(即是 tocerr
和wcerr
as TCHAR
is to char
and的宏wchar_t
)
谢谢。
解决方案
推荐阅读
- solr - 基于匹配包含要匹配的索引的不同字段,在正文文本字段上突出显示 SOLR
- html - iPhone 未显示 HTML 的完整选项选择 iOS 12.1.4
- javascript - Karma + phamtonJS + Angular 7 Error 意外令牌
- mysql - SQL比较列中的整数,输出错误
- php - 将多行从php存储到sql
- python - 每 2 个 Numpy 元素的加权平均值
- gradle - 如何修改gradle任务openapi3的dependsOn。gradle 插件是用 kotlin 编写的
- javascript - 如何从香草javascript中的输入中获取对象
- computation-theory - 将语言转换为上下文无关语法
- logstash - 如何在 Terraform 模板中转义 Logstash sprintf 表达式?