CString to std::cout
CString to std::cout
如何将CString打印到控制台?正在尝试此代码,但得到了类似打印指针的东西。
..
#include <iostream>
#include <atlstr.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
CString a= "ddd";
cout<<a.GetString();
}
Output 00F56F0
使用以下内容:
std::wcout << a.GetString();
使用wcout将CString打印到控制台:
CString cs("Hello");
wcout << (const wchar_t*) cs << endl;
如何将CString打印到控制台?正在尝试此代码,但得到了一些结果打印类似指针。
我很抱歉。我还没说完,就被打断了。显然,您必须转换为临时CStringA(否则,它是宽字符串格式,即wcout)。直到我(再次)阅读你的信息时,我才意识到这一点:
std::ostream& operator << ( std::ostream& os, const CString& str )
{
if( str.GetLength() > 0 ) //GetLength???
{
os << CStringA( str ).GetString();
}
return os;
}
你当然可以按照建议使用wcout:
std::ostream& operator << ( std::wostream& os, const CString& str )
{
if( str.GetLength() > 0 ) //GetLength???
{
os << CStringA( str ).GetString();
}
return os;
}
然后这样使用:
std::wcout << str << std::endl;
相关文章:
- std::cout.imbue()多重调用
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- std::cout输出int时出现编译错误
- 在这种情况下显式调用时,std::cout 如何更改析构函数的行为?
- 为什么 std::cout 打印浮点数、双精度和长双精度到相同的小数精度?
- 为什么我需要做'using namespace std'而不是"使用 std::cout"?
- main() 中的 std::cout 在调试期间不会在调试控制台中打印任何内容
- 错误:在尝试检测 std::cout 是否<< t 时,功能强制转换为数组类型;有效
- std::cout 来自多个线程
- 在 c++ 中以十六进制格式打印无符号字符(BYTE).使用 std::cout
- Cuda 基本程序 (将值写入矩阵和 std:cout 不起作用) ;主功能不启动
- 使用 std::addressof(std::cout) 而不是 &std::cout 是否有任何风险?
- 是否可以为 std::cout 创建别名?
- std::cout 在打印变量与函数表达式时的行为不同
- 带有 std::cout 的多线程控制台文本动画
- 为什么在语句"std::cout << std::endl;"中使用时需要命名空间限定,给定依赖于参数的查找?
- "std::cout << std::endl;"如何编译?
- std::cout/std::cerr seg faults