프로그래밍

 3198, 1/160 회원가입  로그인  
   jaemin1103
   [C언어] C프로그래밍 급해요. 좀 도와주세요ㅜ <학생정보시스템 프로그램>

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


프로그램은 짰는데 여기서 배열부분을 입력으로 받고
파일 입출력을 써서 작성을 하는건데요.. 몇시간째 하고 있는데 도저히 모르겠네요..
부탁입니다. 급해서 그러는데 좀 도와주세요ㅜㅜ


#include <stdio.h>
#include <string.h>        // strcmp 함수를 위한 헤더 파일
#define N 10

int main()
{
        char name[N][9] = {"에일리", "최시원", "공지영", "배수지", "이민정",
                              "김선아", "이현우", "강민경", "김현아", "김준현"};
        char phone[N][14] = {"010-9231-9645", "010-6502-4680", "010-5698-3684",
                                "010-3451-1676", "010-5210-5463", "010-5238-7979",
                                "010-5210-1472", "010-8255-8255", "010-5162-3483",
                                "010-8282-8282"};
        double grade[N] = {4.2, 4.0, 4.0, 4.4, 3.7, 3.0, 2.9, 3.8, 3.2, 2.7};
    
        char who[9];        
        int cnt, i;        
        
        printf("정보를 찾고 싶은 학생 이름은? ");
        scanf("%s", who);

        printf("\n\n");
        printf("=======================================\n");
        printf("   이름        전화번호      평점  \n");
        printf("=======================================\n");

        cnt = 0;  
        for (i=0; i<N; i++)
                if (strcmp(who, name[i]) == 0)
                {
                        cnt++;
                        printf("  %-10s %-14s %5.1lf \n", name[i], phone[i], grade[i]);
                }        
        printf("=======================================\n");

        
        if (cnt == 0)
                printf("  %s(이)라는 학생은 없습니다. \n", who);
        else
                printf("총 %d명의 학생을 찾았습니다. \n", cnt);
        
        return 0;
}

  Hit : 5751     Date : 2012/06/11 09:52



    
rrruf 저기 이름 영어로 바꾸면 정상적으로 작동되는데 한글라서 작동 안되는것같네요, 저도 잘은 모르겠지만 언니한테 물어봤더니 C언어에서는 아스키코드 쓰잖아요? 근데 문자열 받을때 영어는 1바이트를 쓰는데 한글은 2바이트를 쓴다나 뭐라나 그래서 한글로 하면 좀 뭐가 까다롭다는데; 2012/06/11  
ansgk 잘되는데요? 2012/06/12  
cd80 한글때문에 그런거면 visual c++ 2010 express 기준으로 프로젝트 설정 보시면
General Settings 비스무리한게 있습니다 잘 기억은 안나네요
저기 아니면 설정 그냥 다 눌러보셔서
Character set 한글로는 아마 문자셋으로 있을텐데
그걸 Multi-byte character set 으로 변경하시고 다시 컴파일해보시멸 될거같습니다
2012/06/12  
brkdso 1. 파일 입출력으로 작성하고, 배열의 부분을 입력받는다고 하셨는데
그렇다면 배열 부분을 텍스트 파일로 미리 작성하고, FILE 입출력을 사용하셔야 하지 않나요?
어디에도 보이지 않네요.

2. 배열부분도 좀 이상한게

char name[N][9]
이 배열은 원소가 10개입니다. "에일리~김준현"
위의 전처리부분에서 #define으로 N 10 (N=10) 이라고 지정해 두었는데 굳이 2차원 배열을 쓸 필
필요가 있나요?

한글 때문인지는 모르겠으나, FILE 입출력을 사용하신다고 하셨으니 그 부분은
파일 입출력 이라고 찾아보시고, 맞는지 확인해보셔요. 제가 그부분은 약해서 확실히 답변을 해 드릴수 없었습니다. 죄송합니다.


2012/06/15