【问题标题】:2d Char array display in grid二维字符数组显示在网格中
【发布时间】:2013-05-11 21:37:41
【问题描述】:

我在初始化二维字符数组时遇到了困难。当它起作用时,它会给我一个六进制输出。我正在寻找沿着网格线的东西。

#include <iostream>


using namespace std;


main() 
{   


//char test[5][5] = {'***\0','***\0','***\0','***\0','***\0'};
char test[5][5] = {"***\0","***\0","***\0","***\0","***\0"};
cout << test << endl;
cout << char[2][2] << endl;


cin.get();
return 0;


}

建议使用字符串数组,但我需要为另一个与价格挂钩的数组定义数组地址。

【问题讨论】:

  • 你不能像这样初始化二维数组。您真正要做的是尝试使用 char* 数组初始化 test[5][5]。循环初始化,我会贴一些代码。

标签: arrays char 2d


【解决方案1】:
for(int i = 0; i < 5; i++) {
    for(int j = 0; j < 5; j++) {
        test[i][j] = '*';
    }
}

//Alternatively you can go for this

char test[5][5] = {'*', '*', '*', '*', '*', 
                   '*', '*', '*', '*', '*', 
                   '*', '*', '*', '*', '*', 
                   '*', '*', '*', '*', '*', 
                   '*', '*', '*', '*', '*'};

这显然不能准确地为您提供您想要的,它需要一些调整。这将为您提供两个 d 字符数组,全部设置为“*”。尽管使用 std::vector 或 std::array 可能更好,但这至少会起作用。

我认为第二种方法是“危险的”,因为它利用了内存中 test[25] == test[5][5] 的事实,但你应该清楚地使用你更喜欢的那个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-27
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多