当前位置: 代码迷 >> C语言 >> [原创]帮看看这个,执行结果不太满意
  详细解决方案

[原创]帮看看这个,执行结果不太满意

热度:277   发布时间:2005-08-26 16:30:00.0
[原创]帮看看这个,执行结果不太满意
#include <conio.h>
main()
{
    int i ;
    char*f[]=
    {
        "Load    lilibo","Pick  Alt-F3","New    ",
        "Save    F2","Write to    ","Directory",
        "Change dir","Os shee    ","Quit Alt-X"   
    }
    ;
    char buf[9*14*2];
    clrscr();
    textcolor(YELLOW);
    textbackground(BLUE);
    clrscr();
    gettext(10,2,24,11,buf);
    window(10,2,24,11);
    textbackground(RED);
    textcolor(YELLOW);
    clrscr();
    for(i=0;i<9;i++)
    {
        gotoxy(1,i++);
        cprintf("%s",f[i]);
    }
    getch();
    movetext(10,2,24,11,40,10);
    puttext(10,2,24,11,buf);
    getch();
}
搜索更多相关的解决方案: 结果  

----------------解决方案--------------------------------------------------------
以下是引用另糊葱在2005-8-26 16:30:17的发言: #include <conio.h> main() { int i ; char*f[]= { "Load lilibo","Pick Alt-F3","New ", "Save F2","Write to ","Directory", "Change dir","Os shee ","Quit Alt-X" } ; char buf[9*14*2]; //buf 不够大,gettext会造成溢出,建议使用2048,具体怎么计算我不是很清楚 clrscr(); textcolor(YELLOW); textbackground(BLUE); clrscr(); gettext(10,2,24,11,buf); window(10,2,24,11); textbackground(RED); textcolor(YELLOW); clrscr(); for(i=0;i<9;i++) { gotoxy(1,i++); // 这里会造成数组越界 cprintf("%s",f[i]); } getch(); movetext(10,2,24,11,40,10); puttext(10,2,24,11,buf); getch(); }
我不知道你要实现怎么样的效果,是不是将一块已绘制的区域移动到另一处,如果是移动,那么gettext和puttext在这里不妥,因为movetext会自动将该区域文本都重新绘制过去的,无须使用gettext和puttext。 for语句处的错误,给你个修改建议: for(i=1;i<10;i++) { gotoxy(1,i); cprintf("%s",f[i-1]); }
----------------解决方案--------------------------------------------------------
  相关解决方案