C++ 为什么不是';这个代码不起作用吗?(编辑) 使用名称空间std; 无效战斗(国际行){ srand((int)time(NULL)); 字符arr[100][100]; 对于(int a=0;a

C++ 为什么不是';这个代码不起作用吗?(编辑) 使用名称空间std; 无效战斗(国际行){ srand((int)time(NULL)); 字符arr[100][100]; 对于(int a=0;a,c++,arrays,char,C++,Arrays,Char,将arr[a][b]='|'更改为arr[a][b]='|'和arr[a][b]='p'更改为arr[a][b]='p' ==运算符检查LHS=RHS。您要做的是将“|”或“p”赋值给特定索引。赋值运算符为“=” 更多信息。启用编译器警告。arr[a][b]='|'是一个毫无价值的等价测试,而不是赋值。同样地,对于arr[a][b]='p';,如果你费心启用警告并实际读取它们,即使是最初出茅庐的编译器也会对它们进行标记。你真的需要数组吗(或者更确切地说是一个数组数组)在这里?你不能直接打印字符,

arr[a][b]='|'
更改为
arr[a][b]='|'
arr[a][b]='p'
更改为
arr[a][b]='p'

==运算符检查LHS=RHS。您要做的是将“|”或“p”赋值给特定索引。赋值运算符为“=”


更多信息。

启用编译器警告。
arr[a][b]='|'
是一个毫无价值的等价测试,而不是赋值。同样地,对于
arr[a][b]='p';
,如果你费心启用警告并实际读取它们,即使是最初出茅庐的编译器也会对它们进行标记。你真的需要数组吗(或者更确切地说是一个数组数组)在这里?你不能直接打印字符,而不是将其存储在一个永远不会(据我们所知)被再次使用的数组中吗?如果你想更新你的问题,请编辑它。标签下面有一行链接。第二行是。当你的帖子完全陷入“寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中复制它所需的最短代码。”。谢谢。它起作用了。但是在将“|”改为”之后○', 它不起作用。有什么好办法解决这个问题吗?@Secret你是说把“|”改成“o”时,代码就不起作用了○' (U+25CB)可能适合也可能不适合单个
char
,具体取决于您使用的编码方式。如何输入'●' 而且○' 进入一个数组?就像上面的p一样。我们没有任何方法可以做到这一点?我希望你能理解我的意思question@Secret如果要使用ASCII以外的任何字符,则需要使用除
char
以外的类型来存储它们。
using namespace std;

void Fight(int row) {

    srand((int)time(NULL));
    char arr[100][100];

    for (int a = 0; a < row; a++) {
        for (int b = 0; b < row; b++) {
            if (rand()%2 == 0) {
                arr[a][b] == '|';
            }
            else {
                arr[a][b] == 'p';
            }
            cout << arr[a][b];
        }
        cout << endl;
    }

}

int main() {

    int num;

    cout << "Enter the number: ";
    cin >> num;

    Fight(num);
    cout << endl;

    return 0;
}