C程序将字符和文件名作为命令行参数,并在每个文件中保留该字符的计数

时间:2014-03-21 21:18:26

标签: c file-io input output command-line-arguments

我是C的新手,我已经坚持这个问题几个小时了。基本上我正在尝试开发一个程序,它将一个字符和零个更多的文件名作为命令行参数。如果字符后面没有参数,请让程序读取标准输入。否则,让它依次打开每个文件,并将每个文件中出现的字符数报告给输出文件。这是我的代码,我不太确定我的整个逻辑是否适合这个程序。到目前为止,这是我的代码:

int main(int argc, char *argv[]){
FILE *in = stdin;
FILE *out = stdout;
//FILE *hold;
int j,c, count[NUM] ={0}, total =0;

for(j=1;j<argc;j++){
    if(argv[j][0] == '-'){
        if(argv[j][1] == 'o'){
            if(argv[j][2] == '\0')
                out = fopen(argv[j++],"w");
            else
                out = fopen((argv[j] +2),"w");
        }
    } else {
    in = fopen(argv[j],"r");
}
while((c = fgetc(in)) != EOF){
    count[c]++;
    total++;
}

if(fclose(in) != 0)
    fprintf(stderr,"error in closing file %s\n", argv[1]);
getchar();
return 0;}

我确实解决了一些其他命令行参数练习没有任何问题但是对于我目前在C中的水平来说这似乎有点困难。谢谢你的帮助

0 个答案:

没有答案