c语言 读取完文件加密后如何储存并修改呢 求助
读取完文件后进行加密操作,但是无法储存,求助帮忙修改一下,万分感谢#include<stdio.h>#include<stdlib.h>#include<math.h>#...
读取完文件后进行加密操作,但是无法储存,求助帮忙修改一下,万分感谢
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <conio.h> /*建议加入此头文件,以利于getch()的调用*/
FILE *fp;
char buffer[100] = {0};
int file()
{
FILE *fp = NULL;
int i = 0;
printf("请输入文档路径:\n");
char FILENAME[100]="";
scanf("%s",FILENAME);
if ((fp = fopen(FILENAME, "r")) == NULL) {
fprintf(stderr, "can't find file %s!\n", FILENAME); return false;
}
while(i<5)
{
while(1)
{ char ch = fgetc(fp);
if (ch != EOF)
{ buffer[i++] = ch; }
else { break; // 到达文件结尾了
}
}
buffer[i] = '\0';
fclose(fp);
//printf("nihao \n");
printf("%s\n", buffer); // 输出结果
return 0;
}
}
static int c = 1;
int jiami()
{
char a[256];
//printf("请输入要加密的数字\n");
//scanf("%s",a);
file();
for(int ii=0;ii<=strlen(buffer);ii++)
{
a[ii]=buffer[ii];
}
int b = strlen(a); //sizeof(*a);
for(int i = 0 ; i < b;i++){
a[i]=a[i]+c;
}
printf("加密后的密码为: %s\n",&a);
printf("***************\n");
printf("***************\n");
return 1;
}
int jiemi()
{
char b[256];
scanf("%s",b);
int a = strlen(b);
for(int i = 0 ; i < a;i++){
b[i]=b[i]-c;
}
printf("解密后的密码为:%s\n", b);
printf("***************\n");
printf("***************\n");
printf("***************\n");
return 1;
}
void mima(int c)
{
printf("设置成功\n");
printf("********\n");
printf("********\n");
printf("********\n");
}
void main()
{
int a;int b;
while (1)
{
printf("************************* 0 退出程序 *************************\n");
printf("************************* 1 进行加密 *************************\n");
printf("************************* 2 进行解密 *************************\n");
printf("************************* 3 设置密钥 *************************\n");
printf("你要进行的操作是\n");
scanf("%d",&a);
switch(a)
{
case 0:
exit(0);
case 1:
jiami();
continue;
case 2:
printf("请输入要解密的数字\n");
jiemi();
continue;
case 3:
printf("请输入四位数密钥\n");
scanf("%d",&c);
mima(c);
continue;
}
}
} 展开
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <conio.h> /*建议加入此头文件,以利于getch()的调用*/
FILE *fp;
char buffer[100] = {0};
int file()
{
FILE *fp = NULL;
int i = 0;
printf("请输入文档路径:\n");
char FILENAME[100]="";
scanf("%s",FILENAME);
if ((fp = fopen(FILENAME, "r")) == NULL) {
fprintf(stderr, "can't find file %s!\n", FILENAME); return false;
}
while(i<5)
{
while(1)
{ char ch = fgetc(fp);
if (ch != EOF)
{ buffer[i++] = ch; }
else { break; // 到达文件结尾了
}
}
buffer[i] = '\0';
fclose(fp);
//printf("nihao \n");
printf("%s\n", buffer); // 输出结果
return 0;
}
}
static int c = 1;
int jiami()
{
char a[256];
//printf("请输入要加密的数字\n");
//scanf("%s",a);
file();
for(int ii=0;ii<=strlen(buffer);ii++)
{
a[ii]=buffer[ii];
}
int b = strlen(a); //sizeof(*a);
for(int i = 0 ; i < b;i++){
a[i]=a[i]+c;
}
printf("加密后的密码为: %s\n",&a);
printf("***************\n");
printf("***************\n");
return 1;
}
int jiemi()
{
char b[256];
scanf("%s",b);
int a = strlen(b);
for(int i = 0 ; i < a;i++){
b[i]=b[i]-c;
}
printf("解密后的密码为:%s\n", b);
printf("***************\n");
printf("***************\n");
printf("***************\n");
return 1;
}
void mima(int c)
{
printf("设置成功\n");
printf("********\n");
printf("********\n");
printf("********\n");
}
void main()
{
int a;int b;
while (1)
{
printf("************************* 0 退出程序 *************************\n");
printf("************************* 1 进行加密 *************************\n");
printf("************************* 2 进行解密 *************************\n");
printf("************************* 3 设置密钥 *************************\n");
printf("你要进行的操作是\n");
scanf("%d",&a);
switch(a)
{
case 0:
exit(0);
case 1:
jiami();
continue;
case 2:
printf("请输入要解密的数字\n");
jiemi();
continue;
case 3:
printf("请输入四位数密钥\n");
scanf("%d",&c);
mima(c);
continue;
}
}
} 展开
1个回答
展开全部
大概的改了一下,有什么问题,再问吧
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <conio.h> /*建议加入此头文件,以利于getch()的调用*/
char buffer[100] = {0};
static int c = 1;
int get_text()
{
int i = 0;
char file_name[100] = "a.txt";
FILE *fp;
if ((fp = fopen(file_name, "r")) == NULL)
{
fprintf(stderr, "can't find file %s!\n", file_name);
return -1;
}
while(i < 5)
{
while(1)
{
char ch = fgetc(fp);
if (ch != EOF)
{
buffer[i++] = ch;
}
else
{
break; // 到达文件结尾了
}
}
buffer[i] = '\0';
fclose(fp);
//printf("nihao \n");
printf("%s\n", buffer); // 输出结果
return 0;
}
}
int set_psw(char *psw)
{
int i = 0;
char file_name[100] = "b.txt";
FILE *fp;
if ((fp = fopen(file_name, "w+")) == NULL)
{
fprintf(stderr, "can't find file %s!\n", file_name);
return -1;
}
fputs(psw, fp);
fclose(fp);
return 0;
}
int jiami()
{
char a[256];
int i;
//printf("请输入要加密的数字\n");
//scanf("%s",a);
if (get_text() != 0)
{
return -1;
}
for(i = 0; i <= strlen(buffer); i++)
{
a[i] = buffer[i];
}
for(i = 0 ; i < strlen(a); i++)
{
a[i] = a[i] + c;
}
if (set_psw(a) != 0)
{
return -1;
}
printf("加密后的密码为: %s。已保存在b.txt文件中。\n", a);
printf("***************\n");
printf("***************\n");
return 0;
}
int jiemi()
{
char b[256];
int i;
scanf("%s", b);
for(i = 0 ; i < strlen(b); i++)
{
b[i] = b[i] - c;
}
printf("解密后的密码为:%s\n", b);
printf("***************\n");
printf("***************\n");
printf("***************\n");
return 0;
}
void mima(int c)
{
printf("设置成功\n");
printf("********\n");
printf("********\n");
printf("********\n");
}
int main()
{
int a;
while (1)
{
printf("************************* 0 退出程序 *************************\n");
printf("************************* 1 进行加密 *************************\n");
printf("************************* 2 进行解密 *************************\n");
printf("************************* 3 设置密钥 *************************\n");
printf("你要进行的操作是\n");
scanf("%d", &a);
switch(a)
{
case 0:
exit(0);
break; // 这里的break是匹配switch的
case 1:
printf("请输入要加密的数字\n");
jiami();
continue; // 这里的continue是匹配while(1)的
case 2:
printf("请输入要解密的数字\n");
jiemi();
continue; // 这里的continue是匹配while(1)的
case 3:
printf("请输入四位数密钥\n");
scanf("%d", &c);
mima(c);
continue; // 这里的continue是匹配while(1)的
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询