我在一个简单控制台程序(c++)中的第一列代码最终成为我的最后一列

My first column of code in a simple console program (c++) ends up as my last column

本文关键字:一列 代码 最后 我的 一个 简单 控制台 c++ 程序      更新时间:2023-10-16

我的第一列应该是8个向下的标签,但那一列最后结束了。所以现在我在代码的末尾有两列标签。最后打印的字符也是一个小故障字符。

pic

这是我的代码

#include "stdafx.h"
#include <Windows.h>
#include <iostream>
using namespace std;

int main()
{
    unsigned char nip[8][8] = {
        {'#','#','#','#','#','#','#','#'},
        {'#',' ',' ',' ',' ',' ',' ','#'},
        {'#',' ',' ',' ',' ',' ',' ','#'},
        {'#',' ',' ',' ',' ',' ',' ','#'},
        {'#',' ',' ',' ',' ',' ',' ','#'},
        {'#',' ',' ',' ',' ',' ',' ','#'},
        {'#',' ',' ',' ',' ',' ',' ','#'},
        {'#','#','#','#','#','#','#','#'}};
    for(int c = 0;c <= 2; )
    {
        for(int z = 0; z <= 7 ; cout << nip[c][z])
        {
            z++;
        }
        c++;
        cout << "n";
    }
    Sleep(8000);
    return 0;
}

您当前的循环非常奇怪。试试看:

for (int i = 0; i < 8; ++i) {
  for (int j = 0; j < 8; ++j)
    cout << nip[j][i];
  cout << "n";
}

这将打印您想要的内容。对不起,我已将索引更改为ij

为什么不这样做:

for(int c = 0; c <= 7; c++)
{
    for(int z = 0; z <= 7 ; z++)
    {
       cout << nip[c][z];
    }
    cout << "n";
}