2
我想讓用戶點擊Enter鍵時程序結束。由於某種原因,它似乎不起作用。當我使用「char c不等於輸入鍵」時,它會在c中輸入一個額外的整數(最後輸入的整數)。這段代碼有什麼問題?使用Enter鍵結束程序
#include <stdio.h>
#include <stdlib.h>
#define framenumber 4
int test1 =0;
int test2=1;
int main(void)
{
int mainarray[framenumber][2] = {0}, nHP = 3, takein, iPT;
char c = getchar();
printf("Enter: ");
while(1)
{
char c = getchar();
if(c == '\n') {
printf("here");
}
else
{
printf("not enter\n");
takein = atoi(&c);
for (iPT = 0; mainarray[iPT][test2] != takein && iPT < framenumber; iPT++);
if (mainarray[iPT][test2] != takein)
{
//search for a victim
do {
nHP = (nHP + 1) % framenumber;
} while (!(mainarray[nHP][test1] == 1 ? mainarray[nHP][test1] = 0 : 1));
//update the page table
mainarray[nHP][test1] = 1;
mainarray[nHP][test2] = takein;
}
else
{
mainarray[iPT][test1] = 1;
}
puts("page table:");
for (iPT = 0; iPT < framenumber; iPT++)
{
printf("%s %d, %d.\n", iPT == (nHP + 1) % 4 ? ">": " ", mainarray[iPT][test1], mainarray[iPT][test2]);
}
putchar('\n');
printf("Enter: ");
}
}
return 0;
}
在什麼操作系統上?你的`printf`應該有格式的結尾換行符(或者使用`fflush`)。在Linux上,你應該閱讀關於tty-s。終端是逐行讀取的... – 2011-12-17 08:25:43
Mac osx。我如何使用fflush?謝謝 – 2011-12-17 08:27:51