我编写了一个程序来通过异或来加密给定的消息。它有效,但它不会结束。下面是代码(我已创建3个文件)。Ctrl + D不会停止应用程序在命令窗口中执行
encrypt.h:
void encrypt(char *message);
message_hider.c:
#include <stdio.h>
#include "encrypt.h"
int main() {
char msg[80];
while (fgets(msg, 80, stdin)){
encrypt(msg);
printf("%s", msg);
}
return 0;
}
encrypt.c:
#include "encrypt.h"
void encrypt(char *message) {
while (*message) {
*message++ ^= 0x1f;
}
}
正如我上面提到的,它的工作原理。但我无法阻止它。当我按Ctrl + D来停止它(以cmd为单位)时,它也会对它进行加密(我在加密消息后需要停止该代码)。请给我解释一下这个案子。
正如你写的那样,你能解释一下你期望这段代码停止什么情况吗? – BugFinder 2012-08-17 07:55:30
cmd不理解Ctrl + D,使用文件结束条件(即写一个文件并给它到你的程序的标准输入:'prog <文件')。你不加密,你混淆(一点)。顺便说一句,不要指望printf能够实际显示混淆文本 – fork0 2012-08-17 07:57:10
你使用一个更糟糕的主题,请将其修改为有意义的。 – 2012-08-17 08:02:15