| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 674 人关注过本帖
标题:高手帮忙
只看楼主 加入收藏
臣风
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-1-24
收藏
 问题点数:0 回复次数:3 
高手帮忙
#include <stdio.h>

#define WIDTH   80
#define LEFT    0
#define CENTER  1
#define RIGHT   2

void fillchar(FILE *fp, char c, int m);
void flushline(FILE *fp, char *bp, int l, int m);

int main(int argc, char *argv[])
{
        FILE *fpi, *fpo;
        int meta = 0;
        int mode = LEFT;
        char ch;

        if(argc!=3) {
                fprintf(stderr, "Illegal number of argument.\n");
                return(-1);
        }

        if((fpi=..........)==NULL) {
                fprintf(stderr, "Can't open input file <%s>.\n", argv[1]);
                return(-1);
        }
        
        if((fpo=..........)==NULL) {
                fprintf(stderr, "Can't open output file <%s>.\n", argv[2]);
                return(-1);
        }
        

        while((ch=fgetc(fpi))!=EOF) {
                if(meta==1) {
                        switch(ch) {
                                case 'c': mode=CENTER; break;
                                case 'r': mode=RIGHT;  break;
                                case 'l': mode=LEFT; break;
                                default:  fillchar(fpo,'/', mode);
                                                  fillchar(fpo,ch, mode);
                                                  break;
                        }
                        meta=0;
                } else if( ch == '/' ) {
                        meta=1;
                } else {
                        fillchar(fpo,ch, mode);
                }
        }
        fillchar(..........);
        fclose(fpi);
        fclose(fpo);
        return (0);
}

void fillchar(FILE *fp, char c, int m)
{
        static int length=0;
        static char buf[WIDTH+1];

        if((length==........) && ( c!='\n')) {
                flushline(fp, buf, length, m);
                length=0;
        }
        if(..........) {
                flushline(fp, buf, length, m);
                length=....;
        } else {
                buf[.......]=c;
        }
}

void flushline(FILE *fp, char *bp, int l, int m)
{
        *(bp+l)  ='\0';
        fprintf(fp, "%*s%s\n", m*(WIDTH-l)/2, "", bp);


........的部分应该添什么
搜索更多相关主题的帖子: int fpi char define 
2008-01-24 15:26
夜火
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-5-30
收藏
得分:0 
这哪的练习题  又发到论坛上了吧 ?

2008-01-24 15:44
臣风
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-1-24
收藏
得分:0 
回复 2# 的帖子
我现在在上编程课   上面的问题
2008-01-24 15:46
devil_v6
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-10-29
收藏
得分:0 
前两个应该是:
1)fopen(filename,"w")
2)fopen(filename,"r")
以后的,看不太明白都忘记了,查查书吧,上面关于文件的写入有

2008-01-24 17:02
快速回复:高手帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015876 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved