月光虾 发表于 2015-1-20 17:08:11

下面代码为什么现实不了

求高手解惑,谢谢!
#include <stdio.h>
#include <windows.h>
#include <time.h>
void gotoxy(int x, int y)
{
        COORD coord;
        coord.X = x;
        coord.Y = y;
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int main(void)
{
        int i;

        for (i = 0; i<39; i++, Sleep(40))
        {

                gotoxy(i, 0);
                printf("●");

                gotoxy(i, 24);
                printf("■");
        }
        return 0;
        system("pause");
}


雪是梅之香 发表于 2015-1-20 18:26:19

楼主想要实现什么功能呢,为什么我运行之后和你的结果不一样

月光虾 发表于 2015-1-20 18:32:43

雪是梅之香 发表于 2015-1-20 18:26
楼主想要实现什么功能呢,为什么我运行之后和你的结果不一样

上面一排,最下面一排

月光虾 发表于 2015-1-20 18:35:01

现实起来为什么,只是上面一个,下面一个了呢

雪是梅之香 发表于 2015-1-20 19:16:10

首先声明:我不会这个函数,但是当我把代码改成下面的时候,结果就不一样了
不知楼主是怎么理解的
for (i = 0; i<39;Sleep(40))
      {
                gotoxy(++i, 0);
                printf("●");

                gotoxy(i++, 24);
                printf("■");
      }

月光虾 发表于 2015-1-20 19:41:18

雪是梅之香 发表于 2015-1-20 19:16
首先声明:我不会这个函数,但是当我把代码改成下面的时候,结果就不一样了
不知楼主是怎么理解的

只是一个光标定位函数,是光标跳来跳去把打印出来的字符复盖了吗

雪是梅之香 发表于 2015-1-20 19:49:33

月光虾 发表于 2015-1-20 19:41
只是一个光标定位函数,是光标跳来跳去把打印出来的字符复盖了吗

我是这样理解的,如果单纯写i的话,那这个函数就是按照i的不同,在相对应的坐标下打印出来,但是当写成i++或是++i的时候,可能这个函数把i看成了一个函数,于是在i的区间范围内打印出了图像

月光虾 发表于 2015-1-20 21:30:52

雪是梅之香 发表于 2015-1-20 19:49
我是这样理解的,如果单纯写i的话,那这个函数就是按照i的不同,在相对应的坐标下打印出来,但是当写成i+ ...

我是意思是代码这样写,为什么会出现这种情况

月光虾 发表于 2015-1-20 21:32:57

i只是坐标
页: [1]
查看完整版本: 下面代码为什么现实不了