我如何传递一个布尔数组或Unsigned Char*到cout

How can I pass a Boolean Array or Unsigned Char* to cout?

本文关键字:Unsigned 数组 Char cout 布尔 一个 何传递      更新时间:2023-10-16

我传递了一个76800布尔值数组(可以是整数或无符号字符*代替)到Actionscript (AIR)。到目前为止,我想到的最好的解决方案是将我的c++应用程序作为NativeProcess启动,这使我的AIR应用程序可以访问标准输出。

我的解决方案有点奏效,但我觉得这是一个可怕的hack,我不太了解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次

作为第一次传递,为什么要把它们放入流中只是为了将其转换为字符串并将其写入流呢?一次完成:

int arrayLength = 76800;
for (int i = 0; i < arrayLength; ++i) {
    cout << data[i];
}

使用boolalpha标志,如下:

for (int i = 0; i < arrayLength; ++i) {
    cout << boolalpha << data[i] << endl;
}