为什么用C语言程序调用了记事本文件后,记事本的编码方式会改变?
1个回答
展开全部
if((fwrite(p,sizeof(struct part),1,fp))!=1)
其实你说的就是数据加密,看看下面这个代码#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
if((fp = fopen("/mnt/sdcard/kk.txt","r"))==NULL)
{printf("wen jian bu cuan zai!");
exit (0);}
printf("dakai chenggong!\n");
int i;
int n;
char str[1000];
for( i=0; i<1000&&!feof(fp); i++ )
{str[i] = fgetc(fp);
printf("%c",str[i]);}
str[i]='\0';
n = i;
fclose(fp);
for(i = 0; i < n; i++)
str[i] = str[i] - 32;这里就是算法加密,可以升级加密算法
str[i-1] = '\0';
FILE *qq,*gg;
/*qq=tmpfile();*/
char name[8];
tmpnam(name);
gets(name);
gg=fopen(name,"w");
for( i = 0; i < n; i++)
{fputc(str[i],gg);
printf("%c",str[i]);}
fclose(gg);
rename(name,"/mnt/sdcard/jia mi");
}
当然这个是原始的加密方式,你要读取的时候读取后+32即可。当然你可以升级算法,数学书上有讲过加密问题,貌似有种加密方式是无法破解的,总之都是算法加密
。
另外你可以用二进制方式写入数据,那样就会变成乱码,而你用sizeof计算结构体大小读取数据,就能起到加密的作用,应为别人不知道sizeof的大小
其实你说的就是数据加密,看看下面这个代码#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
if((fp = fopen("/mnt/sdcard/kk.txt","r"))==NULL)
{printf("wen jian bu cuan zai!");
exit (0);}
printf("dakai chenggong!\n");
int i;
int n;
char str[1000];
for( i=0; i<1000&&!feof(fp); i++ )
{str[i] = fgetc(fp);
printf("%c",str[i]);}
str[i]='\0';
n = i;
fclose(fp);
for(i = 0; i < n; i++)
str[i] = str[i] - 32;这里就是算法加密,可以升级加密算法
str[i-1] = '\0';
FILE *qq,*gg;
/*qq=tmpfile();*/
char name[8];
tmpnam(name);
gets(name);
gg=fopen(name,"w");
for( i = 0; i < n; i++)
{fputc(str[i],gg);
printf("%c",str[i]);}
fclose(gg);
rename(name,"/mnt/sdcard/jia mi");
}
当然这个是原始的加密方式,你要读取的时候读取后+32即可。当然你可以升级算法,数学书上有讲过加密问题,貌似有种加密方式是无法破解的,总之都是算法加密
。
另外你可以用二进制方式写入数据,那样就会变成乱码,而你用sizeof计算结构体大小读取数据,就能起到加密的作用,应为别人不知道sizeof的大小
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询