| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 957 人关注过本帖
标题:帮忙看一下 那里出错了
只看楼主 加入收藏
maoniu
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-4-7
结帖率:57.14%
收藏
已结贴  问题点数:10 回复次数:8 
帮忙看一下 那里出错了
帮忙看一下 哪里出错了
/*次程序的功能的读入一个文本文件  然后对此进行一些处理 然后在存到一个文件里面*/
#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();
}
搜索更多相关主题的帖子: 3936 文本文件 include 
2010-05-26 17:36
承影、
Rank: 1
来 自:厦门
等 级:新手上路
帖 子:2
专家分:4
注 册:2010-5-25
收藏
得分:1 
俺是新手,完全看不懂得说~

I believe i can
2010-05-26 17:45
w123012306
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:蜘蛛侠
威 望:4
帖 子:307
专家分:1180
注 册:2010-4-22
收藏
得分:1 
我看了天书!!

楼上,楼下的一定要幸福开心哦!
2010-05-26 19:58
吴珂
Rank: 1
等 级:新手上路
帖 子:16
专家分:2
注 册:2010-3-31
收藏
得分:1 
看不懂
2010-05-26 20:01
ym_706
该用户已被删除
收藏
得分:1 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-26 20:47
ym_706
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-26 20:58
maoniu
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-4-7
收藏
得分:0 
这个程序的目的是处理一个藏文文本文件  我在这儿只想问一下strchr(qianj[5],tibet[j++])这个语句有什么问题 strchr()这个库函数怎么用  他的参数有什么限制    谢谢!
2010-05-28 17:55
LUNNAN
Rank: 2
等 级:论坛游民
帖 子:30
专家分:44
注 册:2010-5-23
收藏
得分:1 
由于楼主问的是strchr(qianj[5],tibet[j++])这个语句有什么问题 strchr()这个库函数怎么用  他的参数有什么限制   
所以稍微扫了一眼lZ程序,发现一个小问题(其他地方没怎么看,主要太长了)
if(b = strchr(qianj[5],tibet[j++]) != NULL)
LZ我想你想的是这个意思吧if((b = strchr(qianj[5],tibet[j++])) != NULL)由于!=的优先级高于=,你想的b只能等于true or false;
而strchr这个函数返回char*, 这貌似有点问题
函数原型: char * strchr(char *str,char c);
2010-05-28 22:04
Zale_YT
Rank: 2
等 级:论坛游民
帖 子:22
专家分:15
注 册:2010-5-27
收藏
得分:1 
呵呵,看不懂。
2010-05-28 22:06
快速回复:帮忙看一下 那里出错了
数据加载中...
 
   



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

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