| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:文件操作问题
只看楼主 加入收藏
wetp
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2005-7-18
收藏
 问题点数:0 回复次数:1 
文件操作问题
此程序用于英文文本文件加密,采用费杰尔加密算法,原理是将原来的英文字符加上
对应的密钥字符串中的字符然后再模26求余.
#include <stdio.h>
main(int argc,char *argv[])            /*命令行格式为 加密程序  原文件名  密钥  新文件名*/
{
 FILE *fp1,*fp2;
 char *p,ch;
 p=argv[2];                           /* p指向密钥字符串*/
 if (argc!=4)
   {
    printf("input error!\n");
    exit(0);
   }
 if (fp1=fopen(argv[1],"r")==NULL)
     {
      printf("cannot open file %s",argv[1]);
      exit(0);
     }
 if (fp2=fopen(argv[3],"w")==NULL)
     {
      printf("cannot open file %s",argv[3]);
      exit(0);
     }
 while (!feof(fp1))
    {
     for (;*p!='\0';p++)
       {
        if (feof(fp1))
          break;
        ch=fgetc(fp1);
        if ((ch>='A')&&(ch<='Z'))                 /*加65、97的目的是为了输出对应的字母*/
          ch=(ch+*p)%26+65;
        if ((ch>='a')&&(ch<='z'))
          ch=(ch+*p)%26+97;
        fputc(ch,fp2);
       }
     p=argv[2];
    }
 fclose(fp1);
 fclose(fp2);
}
编译通过,问题就是当我命令行里只输入3个参数的时候,输不出input error!
而且正确输入参数后,生成的密文文件的内容却是空的
搜索更多相关主题的帖子: 文件 
2005-07-25 12:56
随风之幻
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-7-25
收藏
得分:0 
我运行后,输入正确参数后,生成的密文文件内容是正确的
.....debug>cc14.exe "c:\\le.txt" abcdefgh "c:\\zhou.txt"
原来保存到le.txt的文件里的字母是fdsfsdfs
经过加密后zhou.txt文件里内容是rqguiuxl.

不错的程序.
不过有3个警告:
要加上头文件#include<stdlib.h>
if (fp1=fopen(argv[1],"r")==NULL)应该是if ((fp1=fopen(argv[1],"r"))==NULL)
if (fp2=fopen(argv[3],"w")==NULL)应该是if ((fp2=fopen(argv[3],"w"))==NULL)




2005-07-25 15:10
快速回复:文件操作问题
数据加载中...
 
   



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

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