디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

늅늅형. 나 바보인가바... 도저히 해결이 안되 ㅠ_ㅠ..

c초보(116.39) 2010.12.14 12:52:52
조회 126 추천 0 댓글 11

#include <stdio.h> // system header 들은 반드시 <> 로 해야함, ""는 사용자정의 header들만..
#include <conio.h>
#include <stdlib.h>
#include <string.h>


typedef struct test // 스트럭쳐의 변수들에 다음과 같이 반드시 주석을 넣어야함...
{
    char dosi[10];  // 도시명
    char trv[10];      // 거리
 char yokum[10];      // 요금
 float line;
 int fund;
}Test;

int main() // 기본형은 int main()이나 int main(int argc, char** argv) 둘중 하나로...
{
 Test data[20];
 int count=0;
 /* int slt,sta,end,loop; */ // 가급적 몰아서 쓰지말고 개별로 쓰기 바람...
 char slt[10];
 char sta[10];
 char end[10];
 char hana[256];
 char *place;
 char *sep=",";
 int sel;
 int fst;
 int lst;
 int loop;
 int money;
 float dit;
 FILE *fp = NULL; // FILE *fp = NULL; <- 반드시 NULL로 초기값을 설정함.. 아래서 if(fp!=NULL) 부분을 타기위함.

 // 선언부와 정의부는 다른 라인으로... 변수 선언과 구분된걸 쉽게 보기위해... 
 puts("1:경부선 2:호남선\\n");
 gets(slt);
 sel=atoi(slt);
 switch(sel)
 {
  case 1:
   fp=fopen("sk.txt","r");
   break; // break 문을 빼먹을 경우가 있어서 다른 라인으로 하는게 빼먹을시 찾기 쉬움.
  case 2:
   fp=fopen("hn.txt","r");
   break;
  default:
   fp = NULL; // 이렇게함으로써 아래의 if(fp!=NULL)은 안탄다... 그리고 그에해당하는 메시지 출력...
   break;
 }

 if(fp!=NULL)
 {
  while(!feof(fp))
  {
 
   fgets(hana, 256, fp);
   place=strtok(hana, sep);
   strcpy(data[count].dosi, place);
   place = strtok(NULL,sep);
   strcpy(data[count].trv, place);
   data[count].line=atoi(data[count].trv);
   place=strtok(NULL, sep);
   strcpy(data[count].yokum, place);
   data[count].fund=atoi(data[count].yokum);
   printf("%d\\n", data[count].fund);
   
   count++;
   
  }
  
  loop=1;
  puts("출발역을 선택해주세요\\n");
  while( loop )
  {
   for(int i=0;i  <  count-1;i++) // 제어문들은 반드시 { 를 넣어주기를... 어디까지가 for문이 도는 지 헷갈릴때가 있음..
   {
    printf("%1d : %s\\n", i, data[i].dosi); // 인자들의 줄때 ,(콤마)뒤에 스페이스를...)
   }
   gets(sta);
   fst=atoi(sta);
   if(fst>=0 && fst<count)
   {
    loop=0; // 이렇게 해두 되지만. break; 란 문으로 이용하면 소스가 직관적이 됨
   }
   else
   {
    puts("잘못선택하셧습니다\\n");
   }
  }

  loop=1;
  puts("도착역을 선택해주세요\\n");
  while(loop) // Indent...
  {
   for(int i=0;i  <  count-1;i++) // Indent를 줘서 for문이 다음 한개의 라인만 for문 타는걸 알수 있게함.
    printf("%1d : %s\\n",i,data[i].dosi);

   gets(end);
   lst=atoi(end);
   if(lst>=0 && lst<count)
   {
    loop=0;
   }
   else
   {
    puts("잘못선택하셧습니다\\n");
   }
  }

  // 입력로직과 계산로직 사이에 빈칸 한개를 두면 상당히 소스가 직관적이 될수 있음.
  printf("출발역:%s 도착역:%2s\\n",data[fst].dosi,data[lst].dosi);

        printf("출발역과 도착역 사이에 정거장은\\n");
  if(lst>fst)
   {
    printf("%1s->", data[fst].dosi);
     for(int i=fst+1;i  <  lst;i++) // 제어문들은 반드시 { 를 넣어주기를... 어디까지가 for문이 도는 지 헷갈릴때가 있음..
      {
       printf("%1s->", data[i].dosi); // 인자들의 줄때 ,(콤마)뒤에 스페이스를...)
      }
    printf("%1s\\n", data[lst].dosi);
   }
  else
   {
    printf("%1s->", data[fst].dosi);
     for(int i=fst-1;i  >  lst;i--) // 제어문들은 반드시 { 를 넣어주기를... 어디까지가 for문이 도는 지 헷갈릴때가 있음..
      {
       printf("%1s->", data[i].dosi); // 인자들의 줄때 ,(콤마)뒤에 스페이스를...)
      }
    printf("%1s\\n", data[lst].dosi);
   }

  dit   = data[lst].line - data[fst].line;
  money = data[lst].fund - data[fst].fund;
  if( dit <= 0 )
   dit = dit * (-1); // 곱하기 -1을 할 경우 -1에 괄호를 넣어서 다른사람이 볼때 쉽게 볼수 있음...
  if( money <= 0 )
   money = money * (-1);
  if( money <= 8100 )
   money = 8100;
  printf("거리:%.1fkm 요금:%d\\n",dit,money);
  
  fclose(fp); // fopen하면 반드시 fclose를 해야됨..
 }

  printf("end\\n");
  getch();
  return 0;
 
}





에서

 while(!feof(fp))
  {
 
   fgets(hana, 256, fp);
   place=strtok(hana, sep);
   strcpy(data[count].dosi, place);
   place = strtok(NULL,sep);
   strcpy(data[count].trv, place);
   data[count].line=atoi(data[count].trv);
   place=strtok(NULL, sep);
   strcpy(data[count].yokum, place);
   data[count].fund=atoi(data[count].yokum);
      
   count++;
   
  }

이 부분에서.. NULL 때문인지. 계속 안넘어가 ㅠ_ㅠ.

printf로.. 값이 들어가는건 확인했는데..

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 현역으로 군대 안 간게 의아한 스타는? 운영자 25/06/30 - -
338031 리눅스 입문은 뭐로 해야 개념? [1] ㅁㄴㅇㅁㄴㅇ(59.11) 12.11.20 79 0
338030 로또 될 확률보다 당장 내일 알거지가 될 가능성이 더 높겠다. 영꼰이갤로그로 이동합니다. 12.11.20 18 0
338029 진지하게 투잡해야겠다. [14] 영꼰이갤로그로 이동합니다. 12.11.20 99 0
338028 내인생은 사랑돋긔보다 못하니깐 걍 오늘부터 집가면 C나 붙잡고 놀아야지 [5] 69(202.30) 12.11.20 109 0
338027 만약 10억짜리 로또가 당첨된다면? [4] 워킹푸어(182.211) 12.11.20 60 0
338026 윈도우7 적응이 안된다 이모군(175.114) 12.11.20 14 0
338025 그냥 좀 비슷한 사례는 [1] 영꼰이갤로그로 이동합니다. 12.11.20 45 0
338024 이게 왜 55가 출력이 되는거지...................... [6] d(125.177) 12.11.20 55 0
338023 [리눅스 질문] 마우스 클릭하여 복사된 내용 저장되는 클립보드 공간이요 컴공학생(203.252) 12.11.20 490 0
338022 근데 토렌트 사이트 존나 애매해. [6] 영꼰이갤로그로 이동합니다. 12.11.20 120 0
338021 경제 뉴스를 볼때마다 답답하다 워킹푸어(182.211) 12.11.20 24 0
338020 관리 알바 까지 투잡 뛰면.. 부끄곰갤로그로 이동합니다. 12.11.20 37 0
338019 자기 개발 책에 나온 말을 인용하고자 합니다. 워킹푸어(182.211) 12.11.20 31 0
338018 밥먹고 왔다. 근데 세미나 같은거 다니는건 어찌 생각해?? [5] 워킹푸어(182.211) 12.11.20 53 0
338017 도시생활 접고 귀농 하려는 프갤러들은 봅니다. [1] 부끄곰갤로그로 이동합니다. 12.11.20 42 0
338015 얘 근육 존나섹시하지않냐 [2] ㅁㅁ(211.244) 12.11.20 89 0
338014 너네 초봉 2550 넘은 애들 있음? 대기업 말고 [11] 영꼰이갤로그로 이동합니다. 12.11.20 222 0
338013 39 C1 A4 C2 58 D5 E0 AC F6 C2 E4 B2 [8] ㅁㅁ(211.244) 12.11.20 95 0
338012 진심으로 연봉 때문에 걱정이다. [1] 영꼰이갤로그로 이동합니다. 12.11.20 134 0
338011 역시 돈 버는데는 임대업, 대부업이 최고인거 같다 [9] 워킹푸어(182.211) 12.11.20 116 0
338009 그래서 난 2잡을 하려고 합니당~ [3] 워킹푸어(182.211) 12.11.20 52 0
338008 롤 게임가드가 없길레 무슨깡인가해서 분석해봤는데 [9] ㅁㅁ(211.244) 12.11.20 501 0
338007 한국에 사는거 자체가 고통이다. [4] 워킹푸어(182.211) 12.11.20 93 0
338006 횽들 프로그래밍의 프짜도 모르는데 말이야 [5] 상상(211.246) 12.11.20 81 0
338005 프갤엔 맨날똑같은놈만 들어오는구나 얼룩돼지갤로그로 이동합니다. 12.11.20 29 0
338003 근데 뉴스 같은거 보면 조낸 빡치지 않냐?? [1] 워킹푸어(182.211) 12.11.20 27 0
338001 일을 하고 열심히 사는데도 언제나 돈이 없는 사람 [10] 워킹푸어(182.211) 12.11.20 75 0
338000 형들 .. 이 프로그램 알고리즘 어떻게 짜야할까? [10] WannaParty갤로그로 이동합니다. 12.11.20 100 0
337998 노트북 사고싶다 [3] 사랑돋긔갤로그로 이동합니다. 12.11.20 182 0
337997 너네 대기업 말고 SI업체 가면 대졸초임 얼마가 현실적이라고 생각하니 [6] 영꼰이갤로그로 이동합니다. 12.11.20 179 0
337996 시팍 쓸만한 회사가 x도 없어!! [2] 구직중(182.211) 12.11.20 64 0
337995 c++에서 클래스만들떄 질문좀 [1] 김학점갤로그로 이동합니다. 12.11.20 41 0
337994 졸춥다 [1] 정수정•‿•갤로그로 이동합니다. 12.11.20 34 0
337993 ㅔ호ㅓ호ㅓ [2] 사랑돋긔갤로그로 이동합니다. 12.11.20 258 0
337992 이제 돌아왔네 이모군(175.114) 12.11.20 20 0
337991 밑에 징기스칸4 같이 게임 제한 걸린거 풀어달라는거 [4] 69(202.30) 12.11.20 54 0
337990 안드로이드 구글플레이 스토어에 앱 올려보신분 봐주세요 [3] 오호(175.192) 12.11.20 58 0
337989 아오 시팍 요즘은 x만한 회사도 요구사항이 드럽게 많네여 [2] 구직중(182.211) 12.11.20 99 0
337987 밥들먹고 일하라는 [1] 얼룩돼지갤로그로 이동합니다. 12.11.20 41 0
337985 나는 컴퓨터로 자동차와 IT의 결합 및 맵핵? 이딴거 [6] 69(202.30) 12.11.20 85 0
337984 프갤은 디시갤중에 제일현실적인 갤러리인것같다 [2] aa(211.244) 12.11.20 89 0
337982 오 블박 사업 쪽도 괜찮을 거 같다. [9] 영꼰이갤로그로 이동합니다. 12.11.20 76 0
337981 여기 사람들은 '컴퓨터'란 도구로 뭘 하고 싶은거야? [5] 69(202.30) 12.11.20 77 0
337980 j쿼리 책 추천좀 [2] ㅇㅁㄴㅇ(59.11) 12.11.20 50 0
337979 그러고 보면 많은 사람들이 자기 아이디어가 진짜 개쩌는 줄 알고 [3] 영꼰이갤로그로 이동합니다. 12.11.20 99 0
337978 요즘은 "어떡해" 라는 분 안오시나 69(202.30) 12.11.20 55 0
337977 아래 게임 기획 뭐 관련된 글 보니까 이게 생각났다. [2] 잇힝유후♪갤로그로 이동합니다. 12.11.20 61 0
337976 폰트 검색 서비스 어떰? [11] 영꼰이갤로그로 이동합니다. 12.11.20 159 0
337975 그래서 나랑같이 겜제작 공부할사람? d3d시방것(180.71) 12.11.20 31 0
337974 게임도 기술적 이해가 깊은 사람이 기획해야 된다. [1] 영꼰이갤로그로 이동합니다. 12.11.20 69 1
뉴스 어센트(ASC2NT), 8월 첫 아시아 투어 개최…7월 말 컴백 후 글로벌 행보 본격화 디시트렌드 06.30
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2