【问题标题】:Why count outputs wrong chars from char array [closed]为什么计数从字符数组输出错误的字符[关闭]
【发布时间】:2014-12-15 09:54:38
【问题描述】:

我有一个要写入的多维 char 数组,然后使用嵌套的 for 循环打印出来,但由于某种原因它输出垃圾,我做错了什么?

#include <iostream>
#include <string>
using namespace std;

class CheckerBoard {
public:
    void initBoard() {
        for(int y = 0; y < 0; y++) {
            for(int x = 0; x < 0; x++) {
                if((x % 2) == 0) {
                    _board[y][x] = ' ';
                } else {
                    _board[y][x] = '*';
                }
            }
        }
    }
    void printBoard() {
        for(int y = 0; y < 8; y++) {
            for(int x = 0; x < 8; x++) {
                cout << _board[y][x];
            }
            cout << endl;
        }
    }
private:
    char _board[8][8];
};

int main() {
    CheckerBoard cb;
    cb.initBoard();
    cb.printBoard();
    return 0;
}

我认为这与我循环错误有关,它正在访问数组外部的值,但我看不出有什么问题。

【问题讨论】:

  • 请在实际问题中包含输出(实际和预期)。不要发布文本截图,尤其是在某些人无法访问的外部网站上。还要在实际问题中包含相关代码。
  • @orange 无论代码是否存在,问题都是每天发布的无数 debug-this-code-for-me 问题之一,几乎没有或任何其他信息,例如结果调试尝试等。真的不是很多人,包括我自己,都认为 SO 应该令人鼓舞。

标签: c++ arrays cout


【解决方案1】:

initBoard 什么都不做。

for(int y = 0; y < 0; y++)

y0 开始。 0 不小于0,所以循环不会运行。

将你的板子大小 (8) 设置为一个常数,然后在任何地方都使用它,这样你就不太可能使用错误的数字了。

【讨论】:

    猜你喜欢
    • 2014-02-21
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 2020-02-23
    • 2021-12-24
    相关资源
    最近更新 更多