네 무슨 말씀인지 알겠습니다.
근데 어떤식으로 코딩을 해야하는지 답을좀 가르쳐 주시면 감사드리겠습니다.
civilian 님이 쓰신 글 :
: Argument를 체크하여 없는 경우 사용자로 부터 입력을 받도록 하거나
: 사용법을 화면에 뿌려준 후 프로그램을 종료해야 합니다.
:
: 바보 님이 쓰신 글 :
: : 안녕하세요 자체 해결을 했습니다.
: : ->
http://ebs.dongkang.ac.kr 사이트를 참조를 했습니다.
: : 초보자에게는 많은 도움이 될것 같내여.
: : 컴파일 할때 Arguments 값을 주고 컴파일을 하니까 되내여..
: :
: : 근데 문제는 사용자가 Arguments 를 주지 않으면 어떻게 되는건지 모르겠내여.
: :
: : 바보 님이 쓰신 글 :
: : : 안녕하세요..
: : : 2시간 반동안 해매다 도저히 모르겠내여..
: : : 초보라 어쩔수 없이 질문을 드립니다.
: : : 아래 소스를 실행을 하면
: : : -----------------------------------------------------
: : : Parameter 'argc' is never used
: : : -------------------------------------------------------
: : : 이런 에러가 발생합니다.
: : : 환경은 win2000에서 Turbo C++3.0으로 컴파일을 한겁니다.
: : :
: : :
: : : #include <stdio.h>
: : : #include <stdlib.h>
: : : #include <string.h>
: : :
: : : #define MAXLEN 256
: : :
: : : struct RecForm {
: : : long Key1; /* 고객번호 */
: : : long Key2; /* {여행거리 + (탑승인원 * 월이용횟수)} */
: : : } rec[1001];
: : :
: : : void main(int argc, char * argv[])
: : : {
: : : /*static char Line[MAXLEN]; */
: : : char Line[MAXLEN]; /* 한 라인 저장 */
: : : int i, j, Cnt; /* 첨자(i,j), 자료건수(Cnt) */
: : : int Start, End; /* 인수1, 인수2 */
: : : FILE *Infp, *Outfp; /* 파일 포인터 */
: : :
: : : static char Temp2[3], Temp3[4], Temp5[6], Temp6[7]; /* 숫자필드 임시저장 */
: : : char Item1; /* 도착지코드의 시작문자 */
: : : long Item2, Item3, Item4, Item5; /* 열차요금, 여행거리, 탑승인원, 월이용횟수 */
: : :
: : : long ExTemp; /* 고객번호, {여행거리 + (탑승인원 * 월이용횟수)} 교환 */
: : :
: : : Start = atoi(argv[1]); /* 첫번째 파라미터 */
: : : End = atoi(argv[2]); /* 두번째 파라미터 */
: : :
: : : /* 입력파일을 입력전용(텍스트 모드)으로 연다. */
: : : Infp = fopen("c:\\C_iT\\data\\abc3015.txt", "rt");
: : :
: : : Cnt = 0; /* 자료건수 초기화 */
: : : rec[4].Key1 = 0; /* 출력자료 초기화 */
: : : /* 입력부분(조건에 맞는 자료 배열에 저장) */
: : : for(i = 1; i <= End; i++)
: : : {
: : : fgets(Line, MAXLEN, Infp);
: : : if(i >= Start)
: : : {
: : : Item1 = *(Line+21); /* 도착지코드의 시작문자 */
: : : Item2 = atol(strncpy(Temp6, Line+9, 6)); /* 열차요금 */
: : : Item3 = atol(strncpy(Temp5, Line+26, 5)); /* 여행거리 */
: : : Item4 = atol(strncpy(Temp3, Line+23, 3)); /* 탑승인원 */
: : : Item5 = atol(strncpy(Temp2, Line+31, 2)); /* 월이용횟수 */
: : :
: : : /* 도착지코드가 K로 시작하고 열차요금이 13520 이상인 자료 */
: : : if((Item1 == 'K') && (Item2 >= 13520))
: : : {
: : : Cnt++;
: : : /* 고객번호, {여행거리 + (탑승인원 * 월이용횟수)} */
: : : rec[Cnt].Key1 = atol(strncpy(Temp5, Line+0, 5));
: : : rec[Cnt].Key2 = Item3 + (Item4 * Item5);
: : : }
: : : }
: : : }
: : :
: : : /* {여행거리 + (탑승인원 * 월이용횟수)}의 값에 따라 정렬 */
: : : for(i = 1; i <= Cnt-1; i++)
: : : {
: : : for(j = i+1; j <= Cnt; j++)
: : : {
: : : /* 내림차순 정렬, 같은경우 고객번호의 오름차순 정렬 */
: : : if((rec[i].Key2 < rec[j].Key2) ||((rec[i].Key2 == rec[j].Key2) && (rec[i].Key1 > rec[j].Key1)))
: : : {
: : : ExTemp = rec[i].Key1; /* 고객번호 교환 */
: : : rec[i].Key1 = rec[j].Key1;
: : : rec[j].Key1 = ExTemp;
: : :
: : : ExTemp = rec[i].Key2; /* {여행거리 + (탑승인원 * 월이용횟수)} 교환 */
: : : rec[i].Key2 = rec[j].Key2;
: : : rec[j].Key2 = ExTemp;
: : : }
: : : }
: : : }
: : :
: : : /* 입력파일을 닫는다. */
: : : fclose(Infp);
: : :
: : : /* 출력파일을 출력전용(텍스트모드)으로 연다. */
: : : Outfp = fopen("C:\\C_iT\\Data\\ans1.txt", "wt");
: : : /* 출력파일에 결과값을 출력한다. - 4번째 고객번호 */
: : : fprintf(Outfp, "%d %d %ld\n", Start, End, rec[4].Key1);
: : : /* 출력파일을 닫는다. */
: : : fclose(Outfp);
: : : }
: : :