异或规则:1^1=0, 0^0=0, 1^0=1, 0^1=1 同为0,不同为1
所以每个字符和一个数字进行异或操作,操作第一次加密,第二次解密
读取二进制文件中的数据时,一个一个字符读取,再给每个字符和密码进行与操作
整除
不整除
参考
使用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()时就是从回车符的下一个字符开始读了.
以上就是土嘎嘎小编为大家整理的io函数c语言讲解相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!