如何在cocos2dx中打印二维数组

阿姆诺特强

我有一个二维数组,我想打印到visual studio输出以查看每次修改时的结果,我尝试使用std::cout但它不起作用,如果我使用CCLOG该函数每次都会自动写一个换行符调用它,它不是一个二维数组漂亮的解决方案,我也试过CClog不确定有什么区别,CCLOG但这次它甚至给出了编译错误:(

就像我希望输出是:

1,2,4,4,5
5,5,4,3,0
4,4,4,4,7
6,6,6,6,6

这是我尝试过的:

void HelloWorld::PrintBrickArray() {
    CCLOG("will print brick array");
    std::cout << "===Begin of Array ====" << std::endl;
    for (int i = 0; i < MATRIX_Y; i++) {
        for (int j = 0; j < MATRIX_X; j++) {
            //CCLog("%d", this->brickArray[i][j]);
            std::cout << this->brickArray[i][j] << ' ';
        }
        std::cout << std::endl;
    }
    std::cout << "*****END OF Array *****" << std::endl;
    std::cout.flush();
}

如何用 coco2dx 做到这一点?

莉莉

CCLOGcocos2d::log使用 Visual Studio 的调试窗口,这与写入std::cout工作的控制台不同

因此,有两种方法可以解决您的问题:std::cout使用不同的方法写入控制台或使用不同的方法写入输出窗口CCLOG

第一种选择,您必须将项目类型从 Win32 应用程序项目更改为 Win32 控制台项目。这有点像 Visual Studio 的东西,在大多数情况下,你的项目是通过 cocos2d 的控制台自动创建的。你可以看到这个帖子我不推荐这种方式 IMO。

第二种选择,使用您自己的代码写入此处讨论的输出

还有另一种方法可以使用std::string并将std::ostringstream变量“打印”到缓冲区,然后只需通过以下方式将字符串打印到输出窗口CCLOG

CCLOG稍微包装代码以方便我们记录资源检查、错误、文件处理等,这些通常在运行时发生。如果不是在这些情况下,您可能应该设置断点来查看值是什么。

编辑:由于您选择了第二种方法,因此我建议使用std::ostringstreamthansprintfCCLog代替OutputDebugString(因为您只需将其打印出来并且独立于操作系统 ,不需要额外的参数

这是一个示例代码:

#include <vector>
#include <sstream> // for ostringstream
#include <Windows.h> // for OutputDebugStringA
using namespace std;

int main(void)
{
    // Assuming that you have this 2d array
    vector< vector<int> > arr2d;
    arr2d.push_back({ 2,2,1,4 });
    arr2d.push_back({ 2,4,1,5 });
    arr2d.push_back({ 2,4,7,2 });
    arr2d.push_back({ 3,2,0,1 });

    ostringstream buffer;
    for (int i = 0; i < arr2d.size(); i++)
    {
        for (int j = 0; j < arr2d[i].size(); j++)
        {
            buffer << arr2d[i][j] << '\t';
        }
        buffer << endl;
    }

    // Assuming that you use OutputDebugString for windows-only
    //OutputDebugStringA(buffer.str().c_str());

    // I recommend this
    cocos2d::log(buffer.str().c_str());

    return 0;
}

现在,它的buffer工作原理与 几乎相同cout,它只是“打印”到缓冲区,然后您可以使用str(). 但是cocos2d::log使用C风格的字符串,这样c_str()就会摆脱这个问题

查看更多关于std::ostringstream 这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在二维数组中打印行数?

来自分类Dev

如何在cocos2dx中更新openssl?

来自分类Dev

如何在cocos2dx中绘制任意曲线

来自分类Dev

如何在cocos2dx中复制动作

来自分类Dev

如何在cocos2dx 3中摇动屏幕?

来自分类Dev

如何在cocos2dx中绘制圆

来自分类Dev

如何从 Perl 中的二维数组打印行信息?

来自分类Dev

如何在一行中打印二维数组的行?

来自分类Dev

如何在C中打印字符串的二维数组(带空格)?

来自分类Dev

如何打印二维数组?

来自分类Dev

在C中打印二维数组

来自分类Dev

如何在Ubuntu 13.04上安装cocos2dx?

来自分类Dev

如何在Ubuntu 13.04上安装cocos2dx?

来自分类Dev

如何在cocos2dx中使用CCTargetedTouchDelegate?

来自分类Dev

如何在Eclipse中导入cocos2dx项目

来自分类Dev

如何在C ++中的Cocos2dx中为iOS游戏制作滑动菜单

来自分类Dev

如何在python中对二维数组进行排序

来自分类Dev

如何在JSON模式中创建二维数组?

来自分类Dev

如何在二维数组中搜索

来自分类Dev

如何在C ++中返回二维数组

来自分类Dev

如何在PHP中创建Javascript二维数组?

来自分类Dev

如何在JNI中查找二维数组大小

来自分类Dev

如何在Promela中创建二维数组?

来自分类Dev

如何在JSON模式中创建二维数组?

来自分类Dev

如何在ruby中设置二维数组的元素?

来自分类Dev

如何在SharedPreferences中存储整数二维数组?

来自分类Dev

如何在Java中构造二维数组?

来自分类Dev

如何在java中删除二维数组列

来自分类Dev

如何在 JAVA 中创建二维字符数组