| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 831 人关注过本帖
标题:不明白C和C++在这里的区别
只看楼主 加入收藏
弗朗先生
Rank: 1
等 级:新手上路
帖 子:23
专家分:8
注 册:2011-11-18
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:4 
不明白C和C++在这里的区别
有一段代码。保存为“*.c”时候编译、运行没问题,但是保存为“*.cpp”时候就编译错误了。
如果一定要保存为“*.cpp”,代码应该做怎样的修改呢?
为什么会出现这样的问题呢?
/*代码的功能是“将指定的文件二进制代码与给定的数据进行异或,从而达到简单的加密功能”
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void Encryption(char *in_fname,char *pwd,char *out_fname);//对文件进行加密的具体函数
void main()
{
    FILE *fp;
    char in_fname[30];//用户输入的要加密的文件名
    char out_fname[30];
    char pwd[20];  //用来保存密码
    printf("\n输入需要加密的文件名称:\n");
    gets(in_fname);//得到要加密的文件名    
    fp=fopen(in_fname,"rb");
    if(fp==NULL)
    {
        printf("无法打开文件“%s”\n", in_fname);
        return;
    }
    fclose(in_fname);    
    printf("输入密码:\n");
    gets(pwd);//得到密码
    printf("输入加密后文件的名称:\n");
    gets(out_fname);//得到加密后你要的文件名
    Encryption(in_fname,pwd,out_fname);
}

//加密子函数开始
void Encryption(char *in_fname,char *pwd,char *out_file)
{
    FILE *fp1,*fp2;
    register char ch;//寄存器
    int j=0;
    int j0=0;
    fp1=fopen(in_fname,"rb");
    if(fp1==NULL)
    {
        printf("无法打开%s\n", in_fname);
        return;
    }
    fp2=fopen(out_file,"wb");
    if(fp2==NULL)
    {
        printf("无法创建%s\n",out_file);
        system("pause");
        return;
    }
    while(pwd[++j0]);
    ch=fgetc(fp1);
    //加密算法开始
    while(!feof(fp1))
    {
        fputc(ch^pwd[j>=j0?j=0:j++],fp2);//异或后写入fp2文件
        ch=fgetc(fp1);
    }
    fclose(fp1);
    fclose(fp2);
}



[ 本帖最后由 弗朗先生 于 2011-12-23 22:47 编辑 ]
搜索更多相关主题的帖子: 怎样 加密 二进制 
2011-12-23 22:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
char in_fname[30];
…………
fclose(in_fname); // 应该改为 fclose(fp);
2011-12-24 08:21
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:10 
c++在语法上比c更加严格,虽然有些c代码在c++中能编译通过,但由于其强类型的检测,有些还是会出现错误的。

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-12-24 10:53
弗朗先生
Rank: 1
等 级:新手上路
帖 子:23
专家分:8
注 册:2011-11-18
收藏
得分:0 
回复 2楼 rjsp
原来如此。
谢谢了。
2011-12-24 11:43
弗朗先生
Rank: 1
等 级:新手上路
帖 子:23
专家分:8
注 册:2011-11-18
收藏
得分:0 
回复 3楼 waterstar
谢谢嘞!
2011-12-24 11:43
快速回复:不明白C和C++在这里的区别
数据加载中...
 
   



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

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