你好,我需要一段c语言写的代码,用来给txt文件里的结构体的部分信息进行加密写入,并要求可以解密展示在屏幕上
时间: 2024-05-06 17:19:21 浏览: 168
你好!以下是一段C语言代码,可以将txt文件中结构体的部分信息进行加密,并且可以解密并展示在屏幕上。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Student {
char name[20];
int age;
float grade;
};
void encryptString(char* str) {
int length = strlen(str);
for (int i = 0; i < length; i++) {
str[i] += 1;
}
}
void decryptString(char* str) {
int length = strlen(str);
for (int i = 0; i < length; i++) {
str[i] -= 1;
}
}
void encryptStruct(struct Student* stud) {
encryptString(stud->name);
stud->age++;
stud->grade *= 1.5;
}
void decryptStruct(struct Student* stud) {
decryptString(stud->name);
stud->age--;
stud->grade /= 1.5;
}
int main() {
struct Student stud;
char fileName[20];
FILE* fp;
printf("Enter the file name: ");
scanf("%s", fileName);
fp = fopen(fileName, "a+");
if (fp == NULL) {
printf("File open failed!");
exit(1);
}
printf("Enter the student's name: ");
scanf("%s", stud.name);
printf("Enter the student's age: ");
scanf("%d", &stud.age);
printf("Enter the student's grade: ");
scanf("%f", &stud.grade);
encryptStruct(&stud);
fwrite(&stud, sizeof(struct Student), 1, fp);
printf("Information encrypted and written to file.\n");
rewind(fp);
fread(&stud, sizeof(struct Student), 1, fp);
decryptStruct(&stud);
printf("Decrypted information:\nName: %s\nAge: %d\nGrade: %.2f\n", stud.name, stud.age, stud.grade);
fclose(fp);
return 0;
}
```
在这段代码中,我们定义了一个`Student`结构体,其中包含了学生的姓名、年龄和成绩。然后,我们定义了一组加密和解密函数,可以对字符串和结构体中的信息进行加密和解密。在`main`函数中,我们将信息写入文件中,并对其中的姓名、年龄和成绩进行加密。我们然后重新打开文件,读取其中的信息,并对其进行解密。最后,我们展示解密后的信息。
阅读全文