프로그래밍

 3198, 1/160 회원가입  로그인  
   C발프로그래밍
   프로그래밍 질문좀요

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3027 [복사]


과제를 하는데요

프로그래밍을 돌리면
1을 누르면 김밥이 나와야 하는데

안나오고
그냥 다시 menu가 뜹니다.

그리고 2를 누르면
앞에 입력했던 1이 입력을 받아 김밥이 나오고
다음에 3을 누루면 전에 입력했던 2의 값인 설렁탕이 나오는데

왜 이런가요? ㅠ


#include <stdio.h>


void Menu(void);//메뉴선택

int main(void)
{
        int menu;
                scanf("%d\n",&menu);

        while(menu!=5)
        {
                Menu();
                printf("메뉴선택: ");
                scanf("%d\n",&menu);
        
                
        switch(menu){
                case 1 :
                                        printf("김밥에 당첨되셨습니다.\n");
                                        break;

                case 2 :
                      printf("설렁탕에 당첨되셨습니다.\n");
                                          break;

                case 3 :
                                        printf("샌드위치에 당첨되셨습니다.\n");
                                                break;

                case 4 :
                                        printf("치킨에 당첨되셨습니다.\n");
                     break;

                case 5 :
                                        printf("그냥 안 먹을래요\n");
                        break;
                default:
                        printf("잘못 입력 하셨습니다.\n");
                                                
        }
                }
                fflush;



        return 0;
                
                

}


void Menu(void)//메뉴
{
        printf("************ 오늘의 점심 메뉴 **********\n");
        printf("1. 김밥\n");
        printf("2. 설렁탕\n");
                printf("3. 샌드위치\n");
                printf("4. 치킨\n");
                printf("5. 다이어트\n");
                printf("원하는 메뉴를 골라주세요\n");
}

  Hit : 4609     Date : 2011/05/31 06:59



    
prosthetics scanf("%d\n",&menu);
를
scanf("%d",&menu);
로 바꿔주세요.

줄바꿈까지 읽기때문에 값을 하나씩 더 읽는군요.. 따라서 1번씩 밀려서 출력됩니다.
fflush하고는 상관이 없는 문제에요.
2011/05/31  
prosthetics 혹시라도 scanf("%d\n",&menu); 상태를 유지하고 싶으셨다면
다음과 같은 위치에 fflush를 넣어야 합니다.
또한 fflush는 함수이므로 다음과 같은 모양으로 사용해야 합니다.

Menu();
printf("메뉴선택: ");
scanf("%d\n",&menu);
fflush(stdin);
2011/05/31  
clockmaker 닉네임 참;; 2011/05/31  
T3ddyB34r prostehtics // 설명 굳~ 2011/05/31  
일반인 닉네임이 왜이렇게웃기지... 소리가 들리는것같은.. 2011/05/31  
C발프로그래밍 아 그렇군요
제가 완전 초보라서 아무것도 몰ㄹㅏ요
감사합니다^^
2011/05/31  
C발프로그래밍 제 닉넴은 프로그래밍을발로 해서그렇답니다ㅎㅎㅎ 2011/05/31