0

我正在尝试制作一个模拟图形编辑器功能的代码。用户必须输入一个指令,它是一个字符,然后是每个动作将具有的参数。

图像的最大尺寸为 250,因此我在示波器顶部创建了一个 250 个字符的矢量。我的策略是,在为像素着色的情况下,我可以选择这个向量的坐标和我想要的颜色(也表示为一个字符)并平均分配它们。

起初,代码似乎没问题。但是当我为着色像素函数输入“L”时,它只是进入一个无限循环,一遍又一遍地打印矩阵。考虑到这个函数甚至没有循环,这实际上很奇怪。

我错过了哪里?

#include <iostream>
using namespace std;
int res;

char imagem[250][250];
char comando;
int m, n;
int i, j;
int x, y;
char cor;


void createImage() {
    cin >> m >> n;
    for (i=0; i<m; i++) {
        for (j=0; j<n; j++){
            imagem[i][j] = 'o';
        }
    }
}

void cleanImage(){
    for (i=0; i<m; i++) {
        for (j=0; j<n; j++) {
            imagem[i][j] = 'o';
        }
    }
}

void printImage() {
    for (i=0; i<m; i++) {
        for (j=0; j<n; j++) {
            printf("%c", imagem[i][j]);
        }
        printf("\n");
    }
}

void paintPixel() {
    cin >> x >> y >> cor;
    imagem[x][y] = cor;
}

int main(int argc, const char * argv[])
{
    while (comando != 'X') {
        cin >> comando;
        switch(comando) {
            case 'I': createImage();
            case 'C': cleanImage();
            case 'J': printImage();
            case 'L': paintPixel();
        }
    }

    return 0;
}
4

0 回答 0