如何将布尔数组或无符号字符*传递给cout?

时间:2011-12-13 02:14:43

标签: c++ actionscript-3 air

我将一组76800个布尔值(可能是整数或无符号字符*)传递给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。

性能是问题,在这里 - 这实际上是一个我试图传递给as3的2位图像,所以这一切都需要每秒发生15-30次。

2 个答案:

答案 0 :(得分:0)

作为第一遍,为什么还要将它们放入流中,只是将其转换为字符串并将其写入流?只需一次通过:

int arrayLength = 76800;

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

答案 1 :(得分:0)

使用boolalpha标志,如下所示:

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