CString到std :: cout

时间:2014-09-12 15:37:09

标签: c++ visual-c++

如何将CString打印到控制台?尝试使用此代码,但打印出类似指针的内容。

..
#include <iostream>
#include <atlstr.h>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{

    CString a= "ddd";
    cout<<a.GetString();
}

Output 00F56F0

3 个答案:

答案 0 :(得分:5)

使用以下内容:

std::wcout << a.GetString();

答案 1 :(得分:2)

使用 wcout 将CString打印到控制台:

Foldable

答案 2 :(得分:1)

  

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