当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]一个终端里面的类似弹球程序
帖子发表于 : 2007-10-17 22:36 

注册: 2007-01-01 15:36
帖子: 139
地址: 河北
送出感谢: 0 次
接收感谢: 0 次
#include<stdio.h>
#include<curses.h>
#include<sys/time.h>
#include<signal.h>


#define MESSAGE "hello"
#define BLANK " "
int row;
int col;
int dir;

int main()
{
int delay;
int ndelay;
int c;

void move_msg(int);

initscr();
crmode();
noecho();
clear();

row = 10;
col = 0;
dir = 1;
delay = 200;
move(row,col);
addstr(MESSAGE);
signal(SIGALRM,move_msg);
set_ticker(delay);

while(1)
{
ndelay=0 ;
c = getch();
if(c == 'Q') break;
if(c == ' ') dir = -dir;
if(c == 'f' && delay>2 ) ndelay = delay/2;
if(c == 's') ndelay = delay*2;
if(ndelay>0)
set_ticker(delay = ndelay);
}
endwin();
return 0;
}

void move_msg(int signum)
{
signal(SIGALRM,move_msg);
move(row,col);
addstr(BLANK);
col+=dir;
move(row,col);
addstr(MESSAGE);
refresh();
if(dir == -1 && col<=0)
{
dir = 1;
}
else if(dir == 1 && col+5 >= COLS)
{
dir = -1;
}
}
按照书上打出来的..
编译的时候显示
gcc bounceld.c -l curses -o bounceld
/tmp/ccK9obL1.o: In function `main':
bounceld.c:(.text+0xab): undefined reference to `set_ticker'
bounceld.c:(.text+0x11c): undefined reference to `set_ticker'
collect2: ld 返回 1
请教为什么,怎么解决
7.04的系统


_________________
目前的目标就是找个女朋友


最后由 xbl 编辑于 2007-10-18 12:21,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-10-17 23:07 
头像

注册: 2007-03-13 17:26
帖子: 2254
送出感谢: 0 次
接收感谢: 1
找不到函数定义。。。 那个 -l 中间不要有空格吧


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-10-18 12:20 

注册: 2007-01-01 15:36
帖子: 139
地址: 河北
送出感谢: 0 次
接收感谢: 0 次
问题已经解决了哈....原来那个函数是自己定义的...我郁闷...呵呵
代码:
#include<stdio.h>
#include<curses.h>
#include<sys/time.h>
#include<signal.h>


#define MESSAGE "hello"
#define BLANK " "
int row;
int col;
int dir;


int set_ticker(int n_msecs)
{
struct itimerval new_timeset;
long n_sec,n_usecs;

n_sec = n_msecs/1000;
n_usecs=(n_msecs%1000)*1000L;

new_timeset.it_interval.tv_sec=n_sec;
new_timeset.it_interval.tv_usec=n_usecs;

new_timeset.it_value.tv_sec = n_sec;
new_timeset.it_value.tv_usec= n_usecs;

return setitimer(ITIMER_REAL,&new_timeset,NULL);
}

int main()
{
int delay;
int ndelay;
int c;

void move_msg(int);

initscr();
crmode();
noecho();
clear();

row = 10;
col = 0;
dir = 1;
delay = 200;
move(row,col);
addstr(MESSAGE);
signal(SIGALRM,move_msg);
set_ticker(delay);

while(1)
{
ndelay=0 ;
c = getch();
if(c == 'Q') break;
if(c == ' ') dir = -dir;
if(c == 'f' && delay>2 ) ndelay = delay/2;
if(c == 's') ndelay = delay*2;
if(ndelay>0)
set_ticker(delay = ndelay);
}
endwin();
return 0;
}

void move_msg(int signum)
{
signal(SIGALRM,move_msg);
move(row,col);
addstr(BLANK);
col+=dir;
move(row,col);
addstr(MESSAGE);
refresh();
if(dir == -1 && col<=0)
{
dir = 1;
}
else if(dir == 1 && col+5 >= COLS)
{
dir = -1;
}
}


_________________
目前的目标就是找个女朋友


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Bing [Bot] 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译