我正在使用 Cygwin 编译 Head First C 一书中的 C 程序。在我的 Win 7 笔记本电脑上,当我输入程序应该处理的文本时,这本书说用 Ctrl-d 结束字符串列表。好吧,什么也没有发生。如果我按 Ctrl-c,Cygwin 就会关闭。我听说要改用 Ctrl-Z,但这会打印“已停止”。
我尝试添加一行将 \n 替换为 \0,因为这是勘误表中问题的答案。
如何显示我已完成输入文本的程序?我看到很多关于 Ctrl-C 的问题,或者如果他们询问 Ctrl-D,他们想结束程序。我想保持程序运行并结束输入。
Cygwin 薄荷 1.2-beta1
这是3个文件;练习是关于制作自己的头文件。
message_hider.c
#include <stdio.h>
#include <string.h>
#include "encrypt.h"
int main() {
char msg[80];
while(fgets(msg, 80, stdin)) {
if(msg[strlen(msg)-1] == '\n')
msg[strlen(msg)-1] = '\0';
encrypt(msg);
printf("%s", msg);
}
}
加密.c
#include "encrypt.h"
void encrypt(char * message) {
char c;
while (*message) {
*message = *message ^ 31;
message++;
}
}
加密.h
void encrypt(char * message);