c语言fscanf参数,C语言关于fscanf的有关问题

C语言关于fscanf的问题

目前只学过C和JAVA,然后这学期有个工程实践是让用任何一种语言写DES算法的加密解密。考虑到JAVA学的不怎么好,然后在晚上看到说C在这种数的运算上要更快,所以就用C写的DES加密解密。

最初写的解密算法需要输入密文(64bit),考虑到输入的数据太长,所以想改用文件。

现在写成的结果就是,将加密好的密文通过fprintf写入到 in.text 文件中。解密的时候用fscanf从 in.text 文件中直接读取,然后解密。

一开始我写的是  fprintf(fp1,"%d",output[i]);  发现可以将数据写入到文件中,但如果使用   fscanf(fp1,"%d",&ctext[i]);  读取数据,则数据读取不到。

但如果将两个都改成  fprintf(fp1,"%d\n",output[i]);   和   fscanf(fp1,"%d\n",&ctext[i]);   则写入文件和读取文件都是正常的。

所以,为什么加了一个换行符就正确了?

另外,如果有个for循环,每次fscanf读取两个字符,例如fscanf(fp1,"%d\n%d\n",&a,&b);  然后读取的文件里的数据是1\n2\n3\n4\n,那么第一次读取是读取的1  2   第二次就是读取3 4吗?

再另外,关于DES算法实现的一个问题,听说DES算法的好代码都是用 布尔型 的数组保存的二进制数,记得同学说的貌似是因为布尔型运算快一些。这是为什么呢?对于布尔型懂得不多。有了解的人麻烦大体讲一下吧。

谢谢各位了。

------解决方案-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值