【发布时间】:2014-10-19 13:26:45
【问题描述】:
我有一个程序要运行,直到被用户按 CTRL + C 中断。当我按下它时,什么也没有发生,我只能通过暂停程序并在此之后手动终止它来终止程序。
这是需要无限运行的代码部分:
while(true) {
liveOrDie(field);
printOut(field);
}
第一个函数计算是否将 1 或 0 放入二维数组,第二个函数使用 for 循环将其打印出来,如下所示:
void printOut(int field[38][102]) {
for(int i = 0; i < 38; i++) {
for(int j = 0; j < 102; j++) {
if(field[i][j] == 1) {
cout << "o";
}
else {
cout << " ";
}
}
cout << endl;
}
system("sleep .1");
}
使用睡眠,以便在清除之前有足够的时间在屏幕上打印所有内容。
因此,程序不会以Ctrl+C 终止。什么可能导致这种行为,以及如何使程序在Ctrl+C 之后终止?
【问题讨论】:
-
尝试使用 CTRL+Z 杀死
-
您可能正在杀死
system对sleep的调用而不是您自己的代码 - 使用适当的库调用进行睡眠而不是炮击,例如sleep(1). -
这是人生游戏吗?
-
是的,这是生命游戏。