| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 508 人关注过本帖
标题:帮忙看一下 哪里出错了
只看楼主 加入收藏
maoniu
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-4-7
结帖率:57.14%
收藏
 问题点数:0 回复次数:1 
帮忙看一下 哪里出错了
/*次程序的功能的读入一个文本文件  然后对此进行一些处理 然后在存到一个文件里面*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
FILE    *infile, *outfile;
unsigned int qianj[5] = {3906,3921,3926,3928,3936};   //五个前加字的编码值
unsigned int houj[10] = {3906,3908,3921,3923,3926,3928,3936,3938,3939,3942};   //十个后加字的编码值
unsigned int zaihj[2] = {3921,3942};                   //两个在后加字的编码值
unsigned int shangj[3] = {3938,3939,3942};



void panduan()   
{
    int i = 0,j;
    char *b;
    unsigned int  tibet[8],c,a;
    for( ; ;)
    {
    do    {tibet[i]=c; i++;}
    while((c = getc(infile)) != 3851 || c != 3865) ;
         
        switch(i) // 判断基字位置 然后把基字放到最前面
        {
            case 1: ; break;
            case 2: if(tibet[2] > 3984)   ; //第二个字符的编码区域为OF90以上的 则第二个为基字 不换顺序 否则换顺序
                    else c = tibet[0]; tibet[0] = tibet[1]; tibet[1] = c;
            default:  if(b = strchr(qianj[5],tibet[j++]) != NULL)
                      {if(b = strchr(houj[5],tibet[j++]) != NULL)
                      {if(b = strchr(zaihj[5],tibet[j]) != NULL) ;   //第一个为基字 顺序不变
                        else ;}

                      else if(b = *strchr(shangj[5],tibet[j-1]) != NULL)
                      {a = tibet[0]; tibet[0] = tibet[2]; tibet[2] = a;
                      a = tibet[2]; tibet[2] = tibet[1]; tibet[1] = a;}//第三个为基字
                                                    else
                                                    {c = tibet [0]; tibet[0] = tibet[1]; tibet[1] = c;}//第二个为基字
                      }
        else if(b = *strchr(qianj[5],tibet[0]) != NULL)  //第二个位基字
                            {c = tibet [0]; tibet[0] = tibet[1]; tibet[1] = c;}
                else ;  //第一个为基字

        }
        for(j = 0; j < i; j ++)
            fputc(tibet[j],outfile);
        if(c == EOF)  break;  //读完字符推出循环
    }
    fclose(infile);  fclose(outfile);

}


int main(int argc, char *argv[])
{
    char  *s;
    if (argc != 4) {
        printf("'lzss e file1 file2' encodes file1 into file2.\n"
               "'lzss d file2 file1' decodes file2 into file1.\n"
               "%d\n",argc);
        return EXIT_FAILURE;
    }
    printf("ok\n");
    if ((s = argv[1], s[1] || strpbrk(s, "DEde") == NULL)
     || (s = argv[2], (infile  = fopen(s, "rb")) == NULL)
     || (s = argv[3], (outfile = fopen(s, "wb")) == NULL)) {
        printf("??? %s\n", s);  return EXIT_FAILURE;
    }
   
    panduan();
}
搜索更多相关主题的帖子: 文本文件 include 
2010-05-25 20:31
maoniu
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-4-7
收藏
得分:0 
strchr(qianj[5],tibet[j++]) 这个库函数的参数有什么限制吗?  这里的参数有什么问题?
2010-05-26 17:33
快速回复:帮忙看一下 哪里出错了
数据加载中...
 
   



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

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