资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

c语言控制方位函数 C语言的控制语句

C语言中,fseek函数怎么控制移动的方向?怎么往前或往后,最好能有个例子。 谢谢!

fseek有三个参数,第1个是文件句柄,通过打开文件时得到;第2个就是移动的字节数,这个数可以是正的,就是向后(文件尾部)移动,也可以是负的,即向前(文件头部)移动;第3个参数指明从哪里移动,如果写SEEK_SET就是从文件头部移动多少字节,如果写SEEK_END则是从尾部开始移动,SEEK_CUR则是从当前位置移动。

创新互联公司专业为企业提供白沙黎族网站建设、白沙黎族做网站、白沙黎族网站设计、白沙黎族网站制作等企业网站建设、网页设计与制作、白沙黎族企业网站模板建站服务,10多年白沙黎族做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

比如

要将文件指针移动到文件开始的第24字节位置:fseek(fp,24,SEEK_SET);

移动到文件尾部向前50字节:fseek(fp,-50,SEEK_SET);

在当前位置移动8个字节(跳过8个字节数据):fseek(fp,8,SEEK_CUR);

在当前位置向前移动16个字节(准备重新读取数据):fseek(fp,-16,SEEK_CUR);

C语言:写一个函数用来实现左右循环移位。

#include stdio.h

void fun(int value,int n,int dire)

{

if(dire==0) return;

int x=1(sizeof(int)*8-1);

int temp;

int i;

if(dire0)

{

for(i=0;in;i++)

{

temp=value1;

value=1;

if(temp) value|=x;

}

}

else

{

for(i=0;in;i++)

{

temp=value x;

value=1;

if(temp) value|=1;

}

}

}

void main()

{

int x=0x55555555;

fun(x,1,1);

printf("%x",x);

}

c语言控制玩家移动的函数

可以通过设置WASD的程序控制玩家移动。

如果需要平滑的按键输入,或者同时按下多个按键,就不能用getch()了,需要使用另一个WindowsAPI函数:GetAsyncKeyState()。该函数原型如下:

SHORTGetAsyncKeyState(intvKey

//virtual-keycode);

vKey是要检测的按键的虚拟键码,常用的如VK_UP、VK_DOWN等,分别表示方向键的上、下等。需要注意:对于26个字母的键码,可以直接写'A'、'B'??,而不要写VK_A、VK_B。数字键也是,请直接写'0'、'1'??。全部的256种虚拟键码,请参考MSDN中的Virtual-KeyCodes。

返回的SHORT值,如果最高位为1,表示该键被按下;否则表示该键弹起。该函数的最低位还可以用来检测开关键(比如大小写锁定键)的状态。作为按键处理,还可以使用GetKeyState、GetKeyboardState等函数,详细请参考MSDN手册中的KeyboardInputFunctions部分。

C语言控制上下左右的函数是什么?

希望这个能对你有帮助:#include

#include

int

main(void){

int

c

;

while(1){

c

=

getch();

if(c==0)

c=getch();

//

getch在遇到方向键时会返回0

再使用getch便会返回扫描码

if(

c

==

72

)

printf("UP\n");

//

我帮你把上下左右数据调出来

你用的时候define成

UP来使用这个值就可以了

if

(

c

==

80)

printf("DOWN\n");

if

(

c

==

75)

printf("LEFT\n");

if

(

c

==

77)

printf("RIGHT\n");

if(c

==

113)

//按q退出

break;

}

return

0;

}

c语言怎么按方向键控制程序 ? c = getchar(); 我按了上 但是没有反应

在C代码中可设置如下自编的intokey(  )函数,用以接收方向键值。库函数kbhit( )是检测是否有按键被按下,库函数getch(  )是读取键盘按键值的,不需按回车,也不回显。dir是代表方向的变量,根据不同的方向键值,让dir取1到4这四个不同的值。其它的程序段就可根据dir的值让东西朝某个方向移动。方向键按下后会产生2个值,第一个是224,另一个分别为上下左右的72、80、75、77,因此要读取2次值来判断。要包含#includeconio.h .

void intokey(  )

{ int  flag;

if ( kbhit(  ) )   //判断有键按下时才执行下面的操作

{ flag = getch(  );   //用flag来获取键值

if (flag==224) flag = getch(  );  //值为224时表示按下了方向键,要再次获取才行

if (flag==72 dir != 2)  dir = 1; //方向键为“上”且原方向不为下时,让dir=1.

if (flag==80 dir != 1) dir = 2; //方向键为“下”且原方向不为上时,让dir=2.

if (flag==75 dir != 4)  dir = 3; //方向键为“左”且原方向不为右时,让dir=3.

if (flag==77 dir != 3)  dir = 4; //方向键为“右”且原方向不为左时,让dir=4.

}

}

注:这个函数来源于某些“贪吃蛇”的代码,略有修改,足可获取方向键值。其中的1、2、

3、4分别对应着上下左右。

我用c语言编一个箭头运动的程序,我想用键盘控制箭头运动的方向,该怎么办,向各位高手求救

通过使用getch()函数接受键盘输入的字符控制移动,然后再刷屏,就这么简单

下面给一个参考程序

#includestdio.h

#includestdlib.h

#includeconio.h

#define N 6

int x=1, y=1;

int current_value=0;

int map[N][N]={ {1,1,1,1,1,1},{1,0,0,0,0,1},{1,0,0,0,0,1},{1,0,0,0,0,1},{1,0,0,0,0,2},{1,1,1,1,1,1} };

void print()

{

int i, j;

for(i=0; iN; i++)

{ for(j=0; jN; j++)

{

if(i==y j==x)

{printf("#");

continue;

}

if(map[i][j]==1)

printf("*");

if(map[i][j]==0)

printf("-");

if(map[i][j]==2)

printf("$");

}

printf("\n");

}

}

int control(char ch)

{

switch(ch)

{

case 'a':

{ if(map[y][x-1]==0 || map[y][x-1]==2)

{

x--;

current_value=map[y][x];

return 1;

}

else

return 0;

}

case 'd':

{ if(map[y][x+1]==0 || map[y][x+1]==2)

{

x++;

current_value=map[y][x];

return 1;

}

else

return 0;

}

case 's':

{ if(map[y+1][x]==0 || map[y+1][x]==2)

{

y++;

current_value=map[y][x];

return 1;

}

else

return 0;

}

case 'w':

{ if(map[y-1][x]==0 || map[y-1][x]==2)

{

y--;

current_value=map[y][x];

return 1;

}

else

return 0;

}

default :return 0;

}

}

int main()

{

int i, j;

int done=0;

int success=0;

char ch;

print();

while (!success)

{

ch=getch();

if(ch=='0')

break;

done=control(ch);

if(done)

{

system("cls");

print();

}

if(map[y][x]==2)

{success=1;

break;

}

}

if(success)

printf("恭喜你闯关成功!!、\n");

else

printf("再接再厉~~\n");

return 0;

}


当前题目:c语言控制方位函数 C语言的控制语句
URL分享:http://cdkjz.cn/article/dooiceg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220