请 C语言高手帮个忙

2024-10-28 16:26:35
推荐回答(3个)
回答(1):

下次发代码的时候记得把错误提示也发过来。。。

回答(2):

我试了一下,应该是gettext(20,9,36,9,buf); 这边调用buf字符数组错了,buf[16]太小了,根据坐标值应该设置大一些就没有问题了,你在试试看。

#include
#include
void window1(void);
void window2(void);
void window3(void);
int main()
{
char ch;
ch=getch();
textcolor(0);
clrscr();
switch(ch)
{
case '1' : window1(); break;
case '2' : window2(); break;
case '3' : window3(); break;
default : gotoxy(36,15);
textcolor(RED);
printf("I love you\n");break;
}
cprintf("GOOD\n");

return 0 ;
}

void window1()
{
char buf[4096];///////////////////////// here!!!
window(10,5,40,15);
textbackground(1);
textcolor(2);
clrscr();
gotoxy(10,4);
cprintf("This is window1\n");
gettext(10,1,36,9,buf);
puttext(20,11,36,11,buf);

/* printf("---%s\n",buf); */
getche();
}
void window2()
{
window(10,5,40,15);
textbackground(2);
textcolor(3);
clrscr();
gotoxy(10,4);
highvideo();
cprintf("This is window2\n");
normvideo();
textcolor(10);
movetext(20,9,36,9,40,13);
}
void window3()
{
int x,y;
printf("\nx=%d\ny=%d\n",wherex(),wherey());

}


附一个例子。
函数名: gettext
功 能: 将文本方式屏幕上的文本拷贝到存储区
用 法: int gettext(int left, int top, int right, int bottom, void *destin);
程序例:

#include

char buffer[4096];

int main(void)
{
int i;
clrscr();
for (i = 0; i <= 20; i++)
cprintf("Line #%d\r\n", i);
gettext(1, 1, 80, 25, buffer);
gotoxy(1, 25);
cprintf("Press any key to clear screen...");
getch();
clrscr();
gotoxy(1, 25);
cprintf("Press any key to restore screen...");
getch();
puttext(1, 1, 80, 25, buffer);
gotoxy(1, 25);
cprintf("Press any key to quit...");
getch();
return 0;
}

回答(3):

我没TC..