#include<stdio.h> int main() { int onOff; char keyOnOff; onOff=1; while(onOff) { //put your code in here. int arr[9]={1,2,3,4,5,6,7,8,9}; int i; int n; printf("배열을 이용한 구구단. n을 입력하세요."); scanf("%d",&n); for(i = 0 ; i < 9 ; i++) { printf("%d * %d = %d\n",n,arr[i],n*arr[i]); } //code zone is end. printf("재실행 하시겠습니까? (y/n)\n\n"); keyOnOff=getch(); switch(keyOnOff) { case 'y': onOff=1; break; case 'n': onOff=0; break; default : break; } } }
// 괜히 화려해 보일려고 on/off 코드 집어 넣었음요.
덧글 ¶
- 오 ㅋㅋㅋ 윤종하 게임 만들면서 열심히 공부했나보네. 근데 한 가지 말해주자면 getch()를 쓰면 stdin 버퍼에 입력받은 값이 계속 남아있어서 무한루프같은 문제가 생길 수 있어. 그래서 fflush(stdin);이라는 문장을 getch()를 사용한 이후에 한 번 써주는게 좋아. 근데 코드 대충 읽어보니까 n 누르는거 아니면 while 계속 돌아갈듯?- 윤종하
- 우연히 들어와서 봤는데 fflush()는 output stream에 사용하도록 만들어진 함수고, fflush(stdin)은 MS의 컴파일러에서만 지원하는 거라서 linux쪽에서는 작동하지 않는다고 하니까 그것도 알아두는 것이 좋지 싶어요. - 서민관
- 조금 더 찾아봤는데 input stream을 비우는 표준 함수는 없다는 것 같네요. 이식성 등을 생각하면 이런 코드를 쓰는 걸 생각해보는 것도 좋을지도. - 서민관
void trash(void) { int c; while ((c=getchar()) != EOF && c != '\n'); }참고 링크 : http://rantis7.egloos.com/2404014