本人刚学C语言不久,用C语言在DEV(4.9.9.2)编译器上编写了一个加密程序,编译出现问题,请高手指点!

什么问题?请高手指点,勿灌水!回答好的追加分!另外TurboC和DEVC有什么区别?... 什么问题?请高手指点,勿灌水!回答好的追加分!另外Turbo C 和 DEV C 有什么区别? 展开
 我来答
zhangsonglin_c
高粉答主

2014-01-08 · 醉心答题,欢迎关注
知道大有可为答主
回答量:3.7万
采纳率:83%
帮助的人:7021万
展开全部
1、将encode,decode函数前面的char改成int;可以不必预先申明。
2、#include <ctype.h>,toupper()函数在里面。另外,这个函数只处理一个字符,你的意思恐怕是处理整个字符串s,应该使用循环:
3、功能上没有什么大的区别。dev是免费的,开源的,执行C标准比较严。Turbo C不支持中文,DEV支持。
4、经过编码的文件,不应该当做文本文件。应该看做bin二进制文件。EOF在stdio.h中定义为(-1),EOF+1==0,ch==EOF+1时执行ch--,ch就成了EOF了,放进文件,就是文件结束。
正确的做法是,不用EOF,而是使用eof(FILE *f)函数,如此,担心一个字符编码后成了EOF就不必要了。
注意,decode的if(ch==EOF+1)ch--,应该在解码之前执行,因为在encode里面对应的语句if (ch==EOF)ch++;是在编码之后执行的。要还原的是编码之后的字符。
更多追问追答
追问
再解释一下第四点(最好帮我改一下代码)
追答
第一种办法:
将所有if(ch==EOF)改成if(eof(fp1)), 删除为了纠正编码出现EOF(-1)问题的语句if(ch==EOF) ch++;及if(ch==EOF+1)ch--
这个办法较好,适用于各种文件,不仅仅是txt文件。

第二种办法,保留你的做法,在decode中将
if(ch==EOF+1)ch--;
移到ch=ch^key;的前面。
这个办法,你的编码解码程序只适用于txt文件。
xx_lyq00
2014-01-08 · TA获得超过4140个赞
知道大有可为答主
回答量:1794
采纳率:84%
帮助的人:817万
展开全部
先在main前面,声明下二个函数。
二个函数返回值有问题,我看截图是char的,但是里却什么也没返回 。

错误的意思,是说这二个函数跟前面的定义冲突了。我觉得就是你前面没有函数声明 。你先按上面二点改改。

还有一个EOF这是文件结束符的, 用EOF+1这个东西,貌似有点问题是。 与ch比较更有问题。
判断是不是到最后,用ch!=NULL这个比较。
追问
ch 有什么问题?(NULL改完了)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大智刘大智
2014-01-08 · TA获得超过156个赞
知道答主
回答量:75
采纳率:0%
帮助的人:42.4万
展开全部
同志,编译器表示你的错误是: encode和decode这两个子函数,没有声明啊。。。。应该在使用他们之前声明一下,或者连个子函数放在main函数之前。
至于turboc c和dev c 的区别,其实turboc专门是针对c的编辑器,连接器的比较入门的,就是比较麻烦的,dev c比较简单,易于观察,就是升级啦,相当于。。。。也许dev c还有反编译,这个不确定,,,我们通常用visual c++6.0 或着vs 2008
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a5eb3e1
2014-01-08 · TA获得超过4448个赞
知道大有可为答主
回答量:3486
采纳率:60%
帮助的人:2658万
展开全部
#include <stdio.h>

char encode(char *input, char *output, char key); // 加上函数声明
char decode(char *input, char *output, char key); // 加上函数声明

int main()
...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
awz931116
2014-01-08
知道答主
回答量:2
采纳率:0%
帮助的人:2807
展开全部
  • 逍遥:
    1体=50.5血+5.1外防
    1定=36蓝+8.2内防
    1灵=7.6攻击
    1身法=7.5命中+4闪避+1/20会心+1/20会防
    峨眉:
    1体=50.5血+5.1外防
    1定=40蓝+8.3内防
    1灵=7.6攻击
    1身法=7.5命中+2闪避+1/25会心+1/25会防
    武当:
    1体=43.8血+4.4外防
    1定=32蓝+7.6内防
    1灵=8.9攻击
    1身法=7命中+2.5闪避+1/20会心+1/20会防
    星宿:
    1体=52血+5外防
    1定=36蓝+8.9内防
    1灵=7.6攻击
    1身法=6命中+3闪避+1/18会心+1/18会防
    天龙:
    1体=58.1血+6.4外防
    1定=27蓝+6.3内防
    1灵=6.4内功攻击
    1力=6.4外功攻击
    1身法=9命中+3闪避+1/33会心+1/33会防
    天山:
    1体=55.8血+7外防
    1定=25蓝+4.4内防
    1力=7.6攻击
    1身法=8命中+3.3闪避+1/15会心+1/15会防
    少林:
    1体=71.5血+8.3外防
    1定=25蓝+5.7内防
    1力=7.6攻击
    1身法=6.5命中+2闪避+1/25会心+1/25会防
    明教:
    1体=55.2血+5.7外防
    1定=20蓝+4.5内防
    1力=8.2攻击
    1身法=7.5命中+3闪避+1/17会心+1/17会防
    丐帮:
    1体=60血+7.6外防
    1定=20蓝+5.1内防
    1力=7.6攻击
    1身法=8命中+4闪避+1/17会心+1/17会防

    所以1.少林 2.丐帮 3.天龙 4.天山 5.明教 6.星宿 7.峨眉 8.逍遥 9.武当

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式