异或规则:1^1=0, 0^0=0, 1^0=1, 0^1=1 同为0,不同为1
创新互联建站是一家专注于成都网站设计、成都网站制作与策划设计,双辽网站建设哪家好?创新互联建站做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:双辽等地区。双辽做网站价格咨询:18980820575
所以每个字符和一个数字进行异或操作,操作第一次加密,第二次解密
读取二进制文件中的数据时,一个一个字符读取,再给每个字符和密码进行与操作
整除
文件大小:90,分成9个文件,每个文件10
不整除
文件大小:110,分成9个文件,
前(9-1)个文件为(110/(9-1))=13
最后一个文件(110%(9-1))=6
参考
使用feof()来判断,返回非0就是结束了。
if (feof(fp))
...... 此时就表明文件结束了,别再读了
理论上是可以自定义的,但是最好使用 sizeof 进行计算。
比如
fwrite(data,sizeof(data[0]), size_t count, FILE* stream);
setbuf(stdout,buf); 主要还是这个函数的原因,说明文档上说这个buf的大小必须为stdio.h中定义的BUFSIZ大小,或者比他大,要不然会出问题的,估计死循环跟不输出也是你定义的数组太小了,你改大些也可以,或者用BUFSIZ或者fflush(stdout)一下,这三种方法随你选。
从键盘输入的每个字符都会送到输入缓冲流中,scanf函数从输入缓冲流中依次读数据,第一次输入的回车符也在输入缓冲流中,而scanf函数遇到空格或换行符就结束,所以第二次scanf时还是从输入缓冲流中的回车符开始读,读到即结束,然后执行下一个语句。
解决方法:
在每个scanf语句后加一句getchar();
因为getchar()函数不会忽略回车符和空格符,也就是说getchar()函数会将回车符或空格符读出,然后读下一个字符。这样下一次scanf()时就是从回车符的下一个字符开始读了。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款