当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 一个小程序求助(done)
帖子发表于 : 2007-05-08 21:17 

注册: 2007-01-01 15:36
帖子: 139
地址: 河北
送出感谢: 0 次
接收感谢: 0 次
/*@(#) more02.c
Created: 2007年05月08日 14时49分50秒 CST
Author: XBLANDY(YANGYANG) ()
E-mail: xbl1986@163.com

Description:
more02.c - version 0.2 of more
read and print 24 lines then pause for a few special commands
feature of version 0.2: reads form /dev/tty for commands
*/
#include<stdio.h>
/*#include<stdlib.h>*/
/*#include<string.h>*/
#define PAGELEN 24
#define LINELEN 512

void do_more(FILE *);
int see_more(FILE *);

int main(int ac,char *av[])
{
FILE *fp;
if(ac ==1)
do_more(stdin);
else
while( --ac )
if(fp = fopen(* (++av),"r")!=NULL)
{
do_more(fp);
fclose(fp);
}
else
exit(1);
return 0;
}

void do_more(FILE *fp)
/*
*read PAGELEN lines, then call see_more() for further instructions
* */
{
char line[LINELEN];
int num_of_lines = 0;
int see_more(FILE *),reply;
FILE *fp_tty;
fp_tty = fopen("/dev/tty","r");
if( fp_tty==NULL)
exit(1);
while(fgets(line,LINELEN,fp))
{
if(num_of_lines==PAGELEN)
{
reply = see_more(fp_tty);
if(reply == 0)
break;
num_of_lines -= reply;
}
if(fputs(line,stdout)== EOF)
exit(1);
num_of_lines++;
}
}

int see_more(FILE *cmd)
/*
*print message,wait for response ,return # of lines to advance
*q means no, space means yes ,CR means one line
* */
{
int c;
printf("\033[7mmore?\033[m");
while((c = getc(cmd))!= EOF)
{
if(c == 'q')
return 0;
if(c == ' ')
return PAGELEN;
if(c == '\n')
return 1;
}
return 0;
}
在用gcc more02 -o more02.c编译的时候出现警告
more02.c: In function ‘main’:
more02.c:27: warning: assignment makes pointer from integer without a cast
more02.c:33: warning: incompatible implicit declaration of built-in function ‘exit’
more02.c: In function ‘do_more’:
more02.c:48: warning: incompatible implicit declaration of built-in function ‘exit’
请指点一下 谢谢


最后由 xbl 编辑于 2007-05-08 22:12,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-05-08 22:12 

注册: 2007-01-01 15:36
帖子: 139
地址: 河北
送出感谢: 0 次
接收感谢: 0 次
问题似乎解决了
头文件的问题
书上的头文件包含的少了
stdlib.h加上就好了


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

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


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

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

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