实际上,我想用延迟打印文本的每个字符(每个字符数组的索引);因此,我试图开发一个自定义函数,它采用x协调、y协调、x增量和y增量、延迟以及使用Turbo中的outtextxy指向文本字符数组的指针。
这是我的密码:
void printing(int x, int y, int xinc, int yinc, int d, char word[50]){
int i;
int size = strlen(word);
setcolor(LIGHTGREEN);
for(i = 0; i < size; i++){
outtextxy(x,y,word[i]);
}
x += xinc;
y += yinc;
delay(d);
}但这让我每次都犯了一个错误:
调用“outtextxy”中参数“__textstring”中的不匹配类型
我怎么才能解决这个问题?
发布于 2022-04-02 15:25:52
outtextxy函数的第三个参数必须是指向以nul结尾的字符串(或char数组)的指针,但您要传递一个字符。
作为快速修复,您只需声明一个2个字符的数组(一个用于nul终止符),并在每次调用之前将您的单个char复制到其中:
void printing(int x, int y, int xinc, int yinc, int d, char word[50])
{
int i;
int size = strlen(word);
setcolor(LIGHTGREEN);
for (i = 0; i < size; i++) {
char text[2] = { word[i], 0 }; // This character plus nul terminator
outtextxy(x, y, text); // Array "decays" to a pointer to first char
}
x += xinc;
y += yinc;
delay(d);
}但是,在Turbo图形库中可能有一个不同的函数,例如putcharxy(int x, int y, char c),您可以使用它在给定的坐标下输出单个字符。(我无法访问该库或任何权威的在线文档,尽管在本源中似乎没有这样的函数。)
https://stackoverflow.com/questions/71718744
复制相似问题