专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

请帮忙解释下这段代码什么意思,高手帮忙!解决方案

发布时间:2011-06-28 15:18:32 文章来源:www.iduyao.cn 采编人员:星星草
请帮忙解释下这段代码什么意思,高手帮忙!!!
int main(int argc, char *argv[])
{
char *s;

if (argc != 4) {
printf("Usage:lzhuf e(compression)|d(uncompression)"
" infile outfile\n");
return EXIT_FAILED;
}
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("$@HHH(J %s\n", s);
return EXIT_FAILED;
}
if (toupper(*argv[1]) == 'E')
Encode();
else
Decode();
fclose(infile);
fclose(outfile);
return EXIT_OK;
}

------解决方案--------------------
int main(int argc, char *argv[]) 

char *s; 

if (argc != 4) { //如果输入命令下的参数不足4个则立即返回并提示输入的格式
printf("Usage:lzhuf e(compression) | d(uncompression)" 
" infile outfile\n"); 
return EXIT_FAILED; 

if ((s = argv[1], s[1] || strpbrk(s, "DEde") == NULL) //在s中寻找字符串"DEde"中任何一个相匹配的第一个字符
|| (s = argv[2], (infile = fopen(s, "rb")) == NULL) //以读的形式打开文件argv[2]
|| (s = argv[3], (outfile = fopen(s, "wb")) == NULL))//以写的形式打开文件argv[3] 

//如果argv[1]中的字符串中字符不在"DEde"中或文件打开失败
printf("$@HHH(J %s\n", s); 
return EXIT_FAILED; 

if (toupper(*argv[1]) == 'E') //如果输入参数argv[1]为'E'则执行Encode(),否执行Decode()
Encode(); 
else 
Decode(); 
fclose(infile); //关闭文件
fclose(outfile); //关闭文件
return EXIT_OK; 
}
------解决方案--------------------
C/C++ code
int main(int argc, char *argv[]) 
{ 
    char  *s; 
    
    if (argc != 4) { //判断命令行参数个数
        printf("Usage:lzhuf e(compression) |d(uncompression)" 
            " infile outfile\n"); 
        return EXIT_FAILED; 
    } 
    if ((s = argv[1], s[1]  | | strpbrk(s, "DEde") == NULL) //第二个参数如果有d或者e大小写都可以,就算错误,s[1]为空也错误
        | | (s = argv[2], (infile  = fopen(s, "rb")) == NULL) //第三个参数是输入文件名,
        | | (s = argv[3], (outfile = fopen(s, "wb")) == NULL)) { //第斯个参数是输出文件名,
        printf(".$@.H.H.H.(J %s\n", s); 
        return EXIT_FAILED; 
    } 
    if (toupper(*argv[1]) == 'E') //第二个参数的第二个字母是大小写的e
        Encode(); 
    else 
        Decode(); 
    fclose(infile); 
    fclose(outfile); 
    return EXIT_OK; 
}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: