| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1611 人关注过本帖
标题:请高手指教!C语言文件加密题!
只看楼主 加入收藏
Richard_G
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-1-8
收藏
 问题点数:0 回复次数:16 
请高手指教!C语言文件加密题!

#include "stdio.h" #include "stdlib.h"

int main(int argc,char *argv[]) { FILE *fp1,*fp2,*fp3; char ch;

/* 看看参数是否对 */ /* 读原文件 */ if((fp1=fopen("1.txt","r"))==NULL) {printf("cant open %s \n","1.txt"); exit(0); }

/* 加密的程序 */

if((fp2=fopen("2.txt","w"))==NULL) { printf("cant open %s \n","2.txt"); exit(0); }

for(; (ch=fgetc(fp1))!=EOF; ) {putch(ch);ch=ch +4;fputc(ch,fp2);}

fclose(fp1); fclose(fp2);

/* 在打开文?*/

fp2=fopen("2.txt","r"); if((fp3=fopen("3.txt","w"))==NULL) { printf("cant open %s \n","3.txt"); exit(0); } for(; (ch=fgetc(fp2))!=EOF; ) { putch(ch);ch=ch -4;fputc(ch,fp3); } fclose(fp2); fclose(fp3);

}

这是一道文件加密题! 我想在屏幕上输出的结果是 比如: China,Ningbo Glmre0Rmrkfs China,Ningbo 要输出三个文件的内容还要换行!

请问还要修改哪里的代码?

搜索更多相关主题的帖子: C语言 文件 cant 
2005-01-12 09:45
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

#include "stdio.h" #include "stdlib.h"

void main(int argc,char *argv[]) { FILE *fp1,*fp2,*fp3; char ch;

/* 看看参数是否对 */ if(argc!=4) { printf("sorry error!"); exit(0); }

/* 读原文件 */ if((fp1=fopen(argv[1],"r"))==NULL) { printf("cant open %s \n",argv[1]); exit(0); }

/* 加密的程序 */ if((fp2=fopen(argv[2],"w"))==NULL) { printf("cant open %s \n",argv[2]); exit(0); }

for(; (ch=fgetc(fp1))!=EOF; ) { putch(ch); /*输出第一个文件的内容*/ ch=ch +4; fputc(ch,fp2); }

printf("\n"); /*你要的换行*/

fclose(fp1); fclose(fp2); /* 在打开文?*/ fp2=fopen(argv[2],"r"); if((fp3=fopen(argv[3],"w"))==NULL) { printf("cant open %s \n",argv[3]); exit(0); } for(; (ch=fgetc(fp2))!=EOF; ) { putch(ch);/*输出第二个文件的内容*/ ch=ch -4; fputc(ch,fp3); }

printf("\n");/*你要的换行*/

fclose(fp2); fclose(fp3);

if((fp3=fopen(argv[3],"r"))==NULL) { printf("can't open %s",argv[3]); }

for(; (ch=fgetc(fp2))!=EOF; ) { putch(ch); /*输出第三个文件的内容*/ }

}



以上的程序是在TURBOC2环境编译通过的,我在XP的CMD下不能正确执行,不知道为什么,真郁闷,所以最好用纯DOS状态或者是TC的 "OS Shell" 来运行 在DOS状态下输入:

pass pass1.txt pass2.txt pass3.txt

即可得到你要求的内容,需要注意的是pass1.txt必须要存在,而且要与pass.exe放在同一个目录下,相信你会注意到这点的。GL

如果你想要这个程序的详细注释或者升级版本可以继续发帖子来问我啦。费用1000元~~哦,打错了,我都快成为KNOCKER了,是免费的~~


淘宝杜琨
2005-01-12 10:25
Richard_G
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-1-8
收藏
得分:0 
你有QQ吗?或者MSN   这样交流比较快!

我刚测试了一下屏幕上出现的是SORRY ERROR

2005-01-12 11:56
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
sorry error 的出现是因为你没输对参数

你一共要输入3个参数
 pass1.txt  pass2.txt  pass3.txt

要这样输入才对:
d:\pass pass1.txt pass2.txt pass3.txt

请注意空格啦~
很抱歉,我有QQ或者MSN,但是目前都用不了~~~只好这样交流啦

淘宝杜琨
2005-01-12 12:43
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
XP分区是什么格式的?

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-01-12 12:49
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
C的是NTFS,可是我一直很注意把程序放在D盘啊!

淘宝杜琨
2005-01-12 12:56
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
还是搞个多系统吧,我就是win me + win 2003 + dos7.1

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-01-12 13:10
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
dos......

我用winxp+redhat

淘宝杜琨
2005-01-12 13:12
Richard_G
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-1-8
收藏
得分:0 
不能在我原来的程序上修改吗?

2005-01-12 13:16
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
恩?我的确是在你原来的程序的基础上改的呀?

有什么疑问么?

淘宝杜琨
2005-01-12 13:17
快速回复:请高手指教!C语言文件加密题!
数据加载中...
 
   



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

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