디시인사이드 갤러리

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

갤러리 본문 영역

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

c초보(116.39) 2010.12.14 12:52:52
조회 128 추천 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 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45166 65
2869688 이게 무슨 뜻이야..? 뉴비 프로그래머 살려줘 [4] supersns갤로그로 이동합니다. 17:31 14 0
2869687 시발 우리회사 일처리 레전드 프갤러(118.235) 17:30 5 0
2869686 뀨? ♥냥덩이♥갤로그로 이동합니다. 17:27 5 0
2869685 나님 천국이에양..⭐+ ♥냥덩이♥갤로그로 이동합니다. 17:23 7 0
2869683 프로그래머스 vs 리트코드 프갤러(110.13) 17:22 6 0
2869682 깼다. 콜드브루 언제 사지..., 텀블러할인되나... 넥도리아(175.196) 17:15 5 0
2869680 ❤✨☀⭐나님 시작합니당⭐☀✨❤ [3] ♥냥덩이♥갤로그로 이동합니다. 16:51 19 0
2869679 토르로 내파일에 있는 이미지 업로드해도 ㄱㅊ? [1] 프갤러(59.14) 16:15 22 0
2869678 너무 억울하다 클라가 api설치를 못한 초보라서 [4] ㅆㅇㅆ찡갤로그로 이동합니다. 16:09 44 0
2869677 클라실행 안되서 시간더달라고 빌어놓고 ㅇㅇ(211.235) 16:00 28 2
2869676 머리가 너무 복잡하다. 그냥 다 놓고 싶다. [2] ㅇㅇ(223.38) 15:54 29 0
2869675 solid 원칙 소프트웨어 공학 배울땐 그정도로 중요한가 했었는데 [2] ㅇㅇ(118.235) 15:24 41 2
2869674 러스트 언어에 관련된 논의 중 혁신이라는 단어의 의미를 둘러싼 논쟁 루비갤로그로 이동합니다. 15:11 16 0
2869673 임베디드 입문했는데 ㅇㅇ(118.235) 15:09 24 0
2869672 러스트: 1.5. 생태계: 카고(Cargo)와 크레이트(Crates.io 루비갤로그로 이동합니다. 14:58 14 0
2869671 러스트 까는 이유 [1] 프갤러(61.75) 14:53 26 0
2869670 러스트: 1.4. 강력한 타입 시스템과 패턴 매칭 [1] 루비갤로그로 이동합니다. 14:36 22 0
2869669 이거 괜찮은편임? [4] 뜌땨땨땨갤로그로 이동합니다. 14:28 50 0
2869668 웹개발 입문자인데 flask 괜찮나요? [1] 프갤러(14.52) 14:25 32 0
2869667 형님들 어플 관련 오류 도와주십쇼 ㅠㅠ [3] 단팥빵갤로그로 이동합니다. 14:24 29 0
2869665 해선 틱사이즈이거 변동값이냐? ㅆㅇㅆ(124.216) 14:20 17 0
2869664 야 근데 디시 크롤링 하려고 켰는데 디시에 캡챠 추가됐노 [1] ㅆㅇㅆ(124.216) 14:13 31 0
2869663 러스트: 1.3. 제로 코스트 추상화의 계보 루비갤로그로 이동합니다. 14:08 16 0
2869662 구글 ads 미팅중인데 [2] 뉴진파갤로그로 이동합니다. 14:00 37 0
2869661 아스카의 유일한 단점은 [4] 아스카영원히사랑해갤로그로 이동합니다. 13:59 44 0
2869660 정신병자 팀원 어떡하냐? ㅇㅇ갤로그로 이동합니다. 13:56 33 1
2869659 러스트: 1.2. 소유권(ownership), 빌림(borrowing), [4] 루비갤로그로 이동합니다. 13:54 34 0
2869658 본인 내일 C 입문함 각오하셈 [1] 프갤러(123.142) 13:54 35 0
2869657 업뎃) ‘완벽한 언어’라는 종교, 러스트 생태계를 돌아보다 [1] 루비갤로그로 이동합니다. 13:48 22 0
2869656 특정 갤러가 글쓰면 자동으로 댓글 달아주는 매크로 만들어줄사람? [3] 프갤러(58.120) 13:40 42 0
2869655 아 유니티 해야하는데 씨발 [2] 류도그담당(58.239) 13:37 34 0
2869654 납품 시간 늘려줬다고 기능 하나 더 넣어달라고 존나 떼쓰네 ㅆㅇㅆ(124.216) 13:35 28 0
2869652 소설 <롤리타> <내가 사랑하는 초등학생> 차이는? [1] 발명도둑잡기(118.216) 13:22 29 0
2869650 5시간 잤더니 졸리다 발명도둑잡기(118.216) 13:12 17 0
2869649 대기업 다니다가 50세 은퇴하고 자영업하고 느낀점 10가지 [1] 발명도둑잡기(118.216) 13:08 39 0
2869648 스카이데일리 데스크 사망 이유는? 발명도둑잡기(118.216) 13:02 27 0
2869647 ,,ԾㅂԾ,,;; ♥냥덩이♥갤로그로 이동합니다. 12:58 25 0
2869646 이효리(李孝利) 발명도둑잡기(118.216) 12:56 18 0
2869645 트럼프-머스크 갈등 재점화…머스크 "신당 창당" 공세 발명도둑잡기(118.216) 12:55 19 0
2869644 1.1. 탄생 배경과 철학: 왜 러스트인가? [1] 루비갤로그로 이동합니다. 12:52 28 0
2869642 SAP좀 탐나네 [3] 개멍청한유라갤로그로 이동합니다. 12:49 43 0
2869640 부모님께 효를 다하자 [5] 개멍청한유라갤로그로 이동합니다. 12:45 35 0
2869639 백엔드인가 저기 갤러리 좀 공격적이네 [2] 프갤러(118.235) 12:44 49 0
2869636 금서 [3] 발명도둑잡기(39.7) 12:19 31 0
2869632 [SAP Korea] 2025 SAP CODE 아카데미 1기 모집 (~8 프갤러(14.32) 12:13 48 0
2869631 오랜만에 고기를 사들고 [6] 개멍청한유라갤로그로 이동합니다. 12:11 37 0
2869630 평범한 국내 중소이면서 왜 코딩테스트를 자꾸 영문으로 보내 [8] 프갤러(110.13) 12:09 56 0
2869629 [메가존클라우드] DevOps 아키텍트 SecOps 채용연계형 국비지원 [1] 교육운영팀갤로그로 이동합니다. 12:08 34 0
2869627 It트렌드는 어디어디보심? [2] ㅇㅇ갤로그로 이동합니다. 11:45 39 0
뉴스 '남주의 첫날밤을 가져버렸다' 서현, 충격적인 납치 엔딩! 서현을 납치한 범인은? 궁금증 폭발! 디시트렌드 14:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2