所以,我写了下面的代码:
void main(void) {
int charNums[ALPHABET], i = 1;
char word[MAX];
while(i) {
initialize(charNums, word);
getString(word);
setLetters(charNums, word);
getString(word);
checkLetters(charNums, word);
if(isZero(charNums))
printf("Anagram\n");
else
printf("Not anagram\n");
}
}
while 循环是无限的,它应该是无限的。我的教授说了一些关于使用 CTRL-C 退出无限 while 循环的内容,但这不适用于我编写的代码。我错过了一些简单的事情还是什么?有人可以指出我正确的方向吗?谢谢你! (注:这只是代码的一部分。)
这应该适合你:
(这里我添加了一个信号处理程序,它检查您是否按 ctrl + c,如果是,则停止循环)
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
volatile sig_atomic_t stop;
void inthand(int signum) {
stop = 1;
}
int main(int argc, char **argv) {
signal(SIGINT, inthand);
while (!stop)
printf("loop\n");
printf("exiting safely\n");
system("pause");
return 0;
}
所以我认为你的程序应该是这样的:
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
volatile sig_atomic_t stop;
void inthand(int signum) {
stop = 1;
}
int main(int argc, char **argv) {
signal(SIGINT, inthand);
int charNums[ALPHABET], i = 1;
char word[MAX];
while(!stop) {
initialize(charNums, word);
getString(word);
setLetters(charNums, word);
getString(word);
checkLetters(charNums, word);
if(isZero(charNums))
printf("Anagram\n");
else
printf("Not anagram\n");
}
printf("exiting safely\n");
system("pause");
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)