我編寫了一個程序來通過異或來加密給定的消息。它有效,但它不會結束。下面是代碼(我已創建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