因此,我编写了以下代码:
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;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句