gpt4 book ai didi

c - 一次输出多个字符(包括ASCII)?

转载 作者:行者123 更新时间:2023-11-30 18:37:41 24 4
gpt4 key购买 nike

所以,伙计们,我正在开发一个程序,我需要输出一个 2D int 数组(我将其设为 int 数组,因为我使用其他一些点的值)。在我的第一次尝试中,我尝试打印 int 值的正确字符(包括 ASCII):

void printField(){                              
int i,j;
system("CLS");
for(i=0; i<52; i++) {
for(j=0; j<142; j++) {
if(field[i][j]==0){
printf(" ");
}
if(field[i][j]==9){
printf("%c",219);
}
if(field[i][j]==2){
printf("%c",219);
}
if(field[i][j]==1){
printf(" ");
}
if(field[i][j]==6){
printf(" ");
}
if(field[i][j]==7){
printf("%c",207);
}
printf("\n");
}
}

问题是,屏幕闪烁,因为我必须非常快地打印该字段,并且它会一个又一个地打印字符。所以我开始研究( herehere 可能有帮助)并尝试通过一次打印所有内容来解决这个问题(使用 strcat()):

void printField(){                              
int i,j;
char toPrint[10000];
system("CLS");
for(i=0; i<52; i++) {
for(j=0; j<142; j++) {
if(field[i][j]==0){
strcat(toPrint," ");
}
if(field[i][j]==9){
char temp[2];
temp[0]=char(219);
strcat(toPrint,temp);
}
if(field[i][j]==2){
char temp[2];
temp[0]=char(219);
strcat(toPrint,temp);
}
if(field[i][j]==1){
strcat(toPrint," ");
}
if(field[i][j]==6){
strcat(toPrint," ");
}
if(field[i][j]==7){
char temp[2];
temp[0]=char(207);
strcat(toPrint,temp);
}
}
strcat(toPrint,"\n");
}
printf("%s\n", toPrint);
}

使用 DEV-C++ 我没有收到任何错误,但输出完全不是它应该的样子。有什么想法吗?

最佳答案

试试这个:

void printField()
{
int i,j;
int n = 0;
char toPrint[52*(142+1)+1];

system("CLS");

for (i=0; i<52; i++)
{
for (j=0; j<142; j++)
{
switch (field[i][j])
{
case 0: toPrint[n++] = ' '; break;
case 9: toPrint[n++] = 219; break;
case 2: toPrint[n++] = 219; break;
case 1: toPrint[n++] = ' '; break;
case 6: toPrint[n++] = ' '; break;
case 7: toPrint[n++] = 207; break;
}
}
toPrint[n++] = '\n';
}

toPrint[n] = '\0';
printf("%s\n",toPrint);
}

关于c - 一次输出多个字符(包括ASCII)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36196652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com