CString to std::cout

CString to std::cout

本文关键字:cout std to CString      更新时间:2023-10-16

如何将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;