3个回答
展开全部
#include <stdio.h>
int main()
{
FILE *fp1, *fp2;
int c;
int cnt=0;
int c1;
fp1=fopen("stud.dat","rb");
fp2=fopen("stud_enc.dat","wb");
if(fp1 == NULL || fp2 == NULL) return -1;
while((c=fgetc(fp1)) != EOF)
{
cnt ++;
if(cnt&1)
{
c2=c1&3;
c1&=~3;
c2=~c2;
c1|=c2;
}
fputc(c1, fp2);
}
fcloseall();
return 0;
}
展开全部
就是打开文件,读取内容,数据进行取反运算(~)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
void encode(char* data, int len) {
int i = 0;
while (i < len) {
if (i & 1) data[i] = ((~data[i]) & 0x3) + (data[i] & 0xFC);
i++;
}
}
char* read_dat(char* file, int* len) {
FILE* fp = fopen(file, "rb");
char* data = NULL;
if (fp == NULL) return NULL;
fseek(fp, 0, 2);
*len = ftell(fp);
fseek(fp, 0, 0);
if (*len) {
data = (char*) malloc(*len);
fread(data, 1, *len, fp);
}
fclose(fp);
return data;
}
void write_dat(char* file, char* data, int len) {
if (len) {
FILE* fp = fopen(file, "wb");
if (fp == NULL) return;
fwrite(data, 1, len, fp);
fclose(fp);
}
}
int main()
{
int len = 0;
char* data = read_dat("stud.dat", &len);
if (data) {
encode(data, len);
write_dat("stud.dat", data, len);
free(data);
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询