gpt4 book ai didi

c - 使用文件处理在 C 中加密消息

转载 作者:行者123 更新时间:2023-11-30 15:26:18 25 4
gpt4 key购买 nike

很高兴再次询问您!

我想创建一个程序,它基本上读取一个名为 message.txt 的文件,其中包含一些带有消息的文本,比方说:“你好,我是一个程序”,然后加密该消息并将其放入文件中名为 encryptMessage.txt,另外它会将用户使用的 key 保存在文件 key.txt 中。这就是我到目前为止所做的。我不知道如何让程序读取文件message.txt,将其显示到屏幕上,然后将其加密到文件中。有什么建议吗?谢谢你!

我本来打算使用 fscanf,但我不能使用它,因为它是一行,而不仅仅是单个字符串。

如果可能的话,请自己编写代码,以便我可以将其与我迄今为止编写的代码进行比较。我一直感谢您的反馈,谢谢!

#include <stdio.h>
#include <ctype.h>
#define MAXSIZE 100

int main(void)
{
FILE *message;
FILE *encryptMessage;
FILE *key;

message = fopen("message.txt", "r");
encryptMessage = fopen("encryptMessage.txt", "w");
key = fopen("key.txt", "w");

if ((encryptMessage == NULL) || (encryptMessage == NULL) || (encryptMessage == NULL))
{
printf("Error reading file!!!\n");
return 1;
}

int userKey;
char sentence[MAXSIZE];
char q[MAXSIZE];
int i = 0;

printf("Input the text that you want to encrypt:\n> "); // These two lines are a test to see if I was able to encrypt the message, but this is not necessary. It should directly read the file called message.txt.
fgets(sentence, 99, stdin);

// printf("\nThe string that you wrote is:\n%s\n\n", sentence);

printf("Input the key:\n");
scanf("%d", &userKey);
fprintf(key, "%d", userKey);

//printf("\nThe key that you selected is: %d\n\n", userKey);

for(i = 0; sentence[i] != '\0'; ++i)
{
if( ( isupper(sentence[i]) ) || ( islower(sentence[i]) ) )
{
q[i] = sentence[i] + (char)userKey;
}
else
{
q[i] = (sentence[i]);
}
}

q[i] = '\0';
printf("%s", q);
fprintf(encryptMessage, "%s", q);

fclose(encryptMessage);

return 0;
}

最佳答案

要从 message.txt 读取一行,您需要使用 fgets 函数。

fgets(sentence, 99, stdin);

上面的fgets(在代码中)从stdin读取,通常是键盘。要使其从文本文件中读取,请使用

fgets(sentence, MAX_SIZE, message);

还要注意第二个参数的变化。如果您想显示扫描的内容,请取消注释代码中的以下行

//printf("\nThe string that you wrote is:\n%s\n\n", sentence);

不要忘记在使用后关闭(使用fclose)所有已打开(使用fopen)的FILE指针。

关于c - 使用文件处理在 C 中加密消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27427772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com