2012-06-13 3 views
0

C로 게임 코드를 작성하는데 사용자가 입력 한 시간 간격으로 숫자가 표시됩니다. C에서 일시 중지 및 다시 시작 루프

srand (time(NULL)); //this avoids generating the same random number everytime 
start: 
    mySleep(userdelay); 
    printf("\n\n\a\t%d",rand()%90); //prints random numbers with the time delay entered by the user. 
goto start; 

그래서 난 그냥 "일시 정지를 눌러 1"과 "2를 눌러 다시 시작하기"와 같은 사용자 입력과 같은 루프를 재개와 같은 사용자 입력이 루프를 일시 중지하는 방법을 알고 싶었다.

고맙습니다!

+0

'goto'가 정말로 필요합니까? – Mysticial

+1

'goto' 대신'while'을 사용해야합니다. 이것은 불필요 할 때 나쁜 습관입니다 ... –

+0

hmm yes. coz 나는 사용자가 프로그램을 종료 할 때까지 루프를 원합니다. – user1445848

답변

2

나는 이것이 최선의 방법 일지 모르지만 한 가지 방법 일 수 있습니다. 명령 콘솔에서 while 루프를 사용해보십시오.

int main(){ 
    int i; 
    scanf("%d",&i) 
    switch(i){ 
     case 1: while(i != 2){ 
        sleep(1); //or define duration by a variable if time should be "dynamic" 
        scanf("%d",&i); 
        break; 
       } 
    } 
} 

아이디어를 얻길 바랍니다.

편집 : 당신이 "종료 키"가 표시 될 때까지 입력 데이터로 사용자를 원하는 경우

while 루프 고토보다 훨씬 bether입니다. 너가 switch(){}에 익숙하지 않으면 나는 너에게보기 here를 가지고 가기 위하여 조언한다.

+0

사용자 입력을 위해 scanf를 사용하지 않을 것입니다. 최소한 리턴 값을 확인해야합니다. – Lucas