Как я могу передать Boolean Array или Unsigned Char * cout? - PullRequest
0 голосов
/ 13 декабря 2011

Я передаю массив из 76800 логических значений (может быть вместо целых или без знака char *) в Actionscript (AIR). Лучшее решение, которое я придумала на данный момент, - это запустить мое приложение на C ++ как NativeProcess, которое дает моему приложению AIR доступ к stdout.

Мое решение вроде как работает, но я чувствую, что это ужасный взлом, и я недостаточно хорошо понимаю ostream, чтобы знать, как еще передавать вещи:

// Variables
stringstream ss;
int arrayLength = 76800;

// Put data into stringstream
for (int i = 0; i < arrayLength; ++i){
    ss << data[i];
}

// Convert stringstream to stream
string message;
ss >> message;

// Send Data
cout << message;

Есть ли способ вывести эти значения в один большой блок, не превращая их в строку?

Редактировать: в AS3 в идеале я бы приводил эти входные данные как ByteArray , чтобы использовать его как BitmapData.

Здесь важна производительность - это по сути 2-битное изображение, которое я пытаюсь передать as3, так что все это должно происходить 15-30 раз в секунду.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2011

Используйте флаг boolalpha, например:

for (int i = 0; i < arrayLength; ++i) {
    cout << boolalpha << data[i] << endl;
}
0 голосов
/ 13 декабря 2011

В качестве первого прохода, зачем беспокоиться о том, чтобы поместить их в поток только для того, чтобы преобразовать это в строку и записать это в поток? Просто сделайте это за один проход:

int arrayLength = 76800;

for (int i = 0; i < arrayLength; ++i) {
    cout << data[i];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...