我正在尝试制作一个模拟图形编辑器功能的代码。用户必须输入一个指令,它是一个字符,然后是每个动作将具有的参数。
图像的最大尺寸为 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;
}