Отображение переменной WideString в консоли - PullRequest
1 голос
/ 22 февраля 2012

У меня проблемы с отображением WideString в консоли.Я полностью новичок в Builder C ++ и C ++ в целом.Не уверен, что мне нужны некоторые заголовки или, возможно, значения, показанные при отладке, могут помочь.Кажется, что при выполнении

wcout << s;

вместо адреса "массив wchar" отображается адрес.

Вот мой код:

//---------------------------------------------------------------------------
#include <iostream.h>
#include <vcl.h>
#include <string>
#include <wstring.h>
#pragma hdrstop
//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{

    int a;
    WideString s;
    string str;

    cout << "Enter a: ";
    cin >> a;
    //to read the return
    cin.get();
    cout << "Enter str: ";
    cin >> str;
    //to read the return
    cin.get();
    cout << "\n";
    s = L"HELLO";
    wcout << s;
    cout << "\n\n";
    wcout << L"BYE";
    cout << "\n\nPress any key to continue...";
    cin.get();

    return 0;

    }
//---------------------------------------------------------------------------

И этоэто вывод:

Enter a: 4
Enter str: potato

2fb0b4

BYE

Press any key to continue...

1 Ответ

3 голосов
/ 22 февраля 2012

Вы передаете WideString в wcout. WideString - это целый класс, который содержит широкие символы и работает с ними, а не только с строкой. Используйте метод c_bstr WideString, чтобы получить фактическую строку символов.

WideString str;
str = L"HELLO";
wcout << s.b_cstr();
...