argc값은 명령줄의 개수를 나타냅니다.
예) test.exe 실행 파일
test 의 경우 argc값 1
test 10 의 경우 argc값 2
test 10 200 의 경우 argc값 3
이렇습니다.
님이 고민하신것은 아마도 파일명 다음에
인수를 안 써줘서 그럴것입니다.
소스를 보니....
반드시 "실행파일 인수" 의 형식을 지켜야
실행되게 되어있군요.
예)
C:\test samplt.txt
이런식으로 실행해야 됩니다.
임계종 님이 쓰신 글 :
: 계속 같은 걸 질문하는데여..
:
: 밑에 프로그램에서 argc 가 2인것 같은데 if(argc!=2) 가 실행되는것을 보면
:
: (실행시키면 Usage :WRITE <filename> 이 나옵니다.)
:
: argc 가 2가 아니란 소리인데.. 도무지 모르겠네요.
:
: 제가 어디서 잘못 생각하는 것인지..
:
: 마지막 질문입니다. ^^;
:
: compiler 는 Visual C++ 6.0 입니다.
:
: : #include <iostream.h>
: : #include <fstream.h>
: : #include <stdio.h>
: :
: : main(int argc,char *argv[])
: : { if(argc!=2)
: : { cout <<"Usage:WRITE <filename>\n";
: : return 1;
: : }
: : //첫번째 아규먼트의 문자열을 이름으로 하는 파일을 쓰기 모드로 열기.
: : ofstream out(argv[1]);
: : if(!out)
: : { cout <<"Cannot oppen output file \n";
: : return 1;
: : }
: :
: : char str[80];
: : cout <<"Write strings to disk , RETURN to stop \n";
: :
: : do
: : { cout <<":";
: : //stdin(보통 키보드)으로부터 문자열을 입력받아 str 번지에서 시작하는 메모리에 저장
: : //gets 함수는 엔터 키를 누르면 return함
: : gets(str);
: : //str 문자열을 파일에 출력
: : out <<str <<endl;
: : }while(*str); //입력 내용이 있는 동안 계속
: :
: : out.close(); //파일 닫기
: : return 0;
: : }
:
|