#include <iostream>
#include <windows.h>
using namespace std;
int go_to(int x, int y)
{
COORD c;
c.X = x - 1;
c.Y = y - 1;
return SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void main(){
int a=1;
while(a<10){
a++;
cout<<"work"<<endl;
go_to(3,6);
cout<<"work"<<endl;
}
}
我不明白为什么这个循环只工作一次,也许你知道哪里有问题? 我问题是在Cord中,但是不知道使用CORD的类似方法。
答案 0 :(得分:6)
变量a仅由a++;
行修改,其值增加1,并且不会传递到go_to(x,y)
,因此它不会受到该函数的影响。
您的循环肯定会运行值a = {1到9},每次调用go_to(3, 6)
,并且还打印两次。如果你不这么认为,我相信你错了。
答案 1 :(得分:2)
你的循环在每次迭代中都做同样的事情,所以你根本不能告诉它运行很多(9)次。
答案 2 :(得分:2)
更改
while(a<10){
a++;
cout<<"work"<<endl;
go_to(3,6);
cout<<"work"<<endl;
}
要
while(a<10){
a++;
cout<<"work"<<endl;
go_to(a,a*2);
cout<<"work"<<endl;
}
你会发现它实际上已经多次运行了。
答案 3 :(得分:0)
这些值永远不会改变。
while(a<10){
a++;
cout<<"work"<<endl;
go_to(3,6);
cout<<"work"<<endl;
}
而不是这样,尝试这样的事情:
for(int a = 0; a < 10; a++{
cout<<"work"<<endl;
go_to(a + 3,a + 6);
cout<<"work"<<endl;
}
这样你的价值实际上会改变