C 如何让下面代码的第二部分工作

C 如何让下面代码的第二部分工作,c,windows,file,encryption,malloc,C,Windows,File,Encryption,Malloc,我做了文件加密,但只执行了第一段代码,我不明白为什么下一部分没有运行,也许我遗漏了什么,帮我解决我的问题 intmain(){ char exe[20]=“encrypt1.vr”; char txt[20]=“encrypt2.vr”; char jpg[20]=“encrypt3.vr”; 文件*fileptr、*files、*filed、*dskfileptr、*dskfiles; int重编码、解码; int i;//用于通过文件缓冲区进行索引 unsigned long int fil

我做了文件加密,但只执行了第一段代码,我不明白为什么下一部分没有运行,也许我遗漏了什么,帮我解决我的问题

intmain(){
char exe[20]=“encrypt1.vr”;
char txt[20]=“encrypt2.vr”;
char jpg[20]=“encrypt3.vr”;
文件*fileptr、*files、*filed、*dskfileptr、*dskfiles;
int重编码、解码;
int i;//用于通过文件缓冲区进行索引
unsigned long int file_s;//保存文件中的字节数
int keylen;//保存键的长度
char*filebuff=NULL;
字符键[]=“ABCDEF”;
keylen=strlen(键);
char fname[30]=“1.exe”;
字符名[40]=“2.txt”;
名为[50]=“3.jpg”的字符;
重命名(fname,exe);
重命名(名称,txt);
重命名(命名为jpg);
fileptr=fopen(exe,“rb+”);
if(fileptr==NULL){
printf(“无法打开文件exe。\n”);
返回-1;
}否则
fprintf(fileptr,“text\n”);
fclose(文件管理器);
系统(“暂停”);
返回0;
fileptr=fopen(exe,“rb+”);
fseek(dskfileptr,0,SEEK_END);//将文件指针移动到文件末尾
file_s=ftell(dskfileptr);//获取当前文件指针位置
//这将是文件的大小
倒带(dskfileptr);//字节
filebuff=malloc(文件);
//将文件字节读入RAM filebuff(这只是一个字符数组)
if(fread(filebuff,files,1,dskfileptr)!=1)
printf(“读取文件时出错。\n”);
返回-1;
对于(i=0;i
上述代码有效

/\ /\ /\ WORK DON'T WORK \/ \/ \/ /\ /\ /\ 工作 不工作 \/ \/ \/ 下面的代码不起作用

files=fopen(txt,“rb+”);
if(files==NULL){
printf(“无法打开文件txt。\n”);
返回-1;
}否则
fprintf(文件,“文本”);
fclose(文件);
系统(“暂停”);
files=fopen(txt,“rb+”);
fseek(files,0,SEEK_END);//将文件指针移动到文件末尾
file_s=ftell(files);//获取当前文件指针位置
//这将是文件的大小
倒带(文件);//字节
filebuff=malloc(文件);
//将文件字节读入RAM filebuff(这只是一个字符数组)
if(fread(filebuff,files,1,files)!=1)
printf(“读取文件时出错。\n”);
返回-1;
对于(i=0;i
此代码中存在多个错误。也在第一部分。你在打电话吗

fseek(dskfileptr, 0, SEEK_END);
不给dskfileptr赋值。你必须打开这个文件

这同样适用于“DSK文件”


变量“field”从未使用过。

您有一个“return 0;”在代码的中间,然后执行将停止!
正如其他人提到的,代码中还有几个问题。例如,在分配了如此大的缓冲区之后,您不会检查指针是否为NULL。另外,请修复您的格式。

发布的代码片段中存在许多问题。最突出的问题出现在重新格式化代码之后:您似乎认为缩进决定了结构。与Python不同,C忽略结构的缩进,必须使用大括号
{}
将多个语句分组到一个由
if
子句控制的块中:

不要这样写:

if (fread(filebuff, file_s, 1, dskfileptr) != 1)
    printf("Error in reading file.\n");
    return -1;
写下以下内容:

if (fread(filebuff, file_s, 1, dskfileptr) != 1) {
    printf("Error in reading file.\n");
    return -1;
}

你说的“不起作用”是什么意思?崩溃、免费、坏结果。。。。请阅读,否,底部代码部分未执行
返回0
将从main方法返回,之后不执行代码。更正缩进以防止由于缺少
{}
而出现不必要/意外的行为。需要删除返回0;这里?正确的格式和缩进。使用适当的
{}
。还要调试代码以更好地了解其流。fseek()用于将与此文件关联的文件指针移动到特定位置,有什么问题吗?在调用fseek()之前,您必须调用fopen()。我这样做了,但程序可以工作,但不加密文件,只重命名。我告诉过您为什么。。。