main의 char* argv[]를 처리하는 것에 관한 질문입니다.
글쓴이: aeronova / 작성시간: 금, 2006/08/25 - 10:34오후
안녕하세요,
프로그램을 실행시킬때 인자들이 char* argv[]로 받아들여지는데, 이것을 다루다가 막혀서 질문을 올립니다.
제가 하려는 것은 다음과 같이 프로그램을 실행시킬때,
run inputfile1 inputfile2 1.0 2.0
처음 인자 2개는 그냥 char*로 처리하면 되지만,
마지막 부분에 있는 "1.0 2.0"이란 부분을 double* 로 타입을 변환해야 합니다. 즉,
다음과 동일한 것처럼 만들고 싶습니다.
double* point = {1.0, 2.0};
그래서 다음과 같이 해 주었더니
double* point = new double[argc-3]; point = static_cast<double*>(*argv);
에러가 납니다.
error: invalid static_cast from type `char*' to type `double*'
에고, 아무래도 포인터를 다루는 것에 익숙치 않아 생기는 문제라고 생각됩니다.
어떤식으로 처리해야 할지 도움 부탁드립니다.
Forums:
int main(int argc, const
argv는 c string의 배열입니다.
문자열을 강제로 cast한다고 해서 수가 될 수 없읍니다.
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
그냥 가장 직관적인 방법으로...
문자열을 double로 바꾸시는 걸 의도하시는 것 같은데요.
단순히 타입 캐스팅으로는 해결이 안됩니다.
아래 처럼 atof 를 사용하세요.
감사합니다. 단순히
감사합니다. 단순히 타입 캐스팅으로 해결 안되는 문제였군요.
덕분에 고민 하나 해결했습니다. :)
It's better to burn out than to fade away. -- Kurt Cobain.
댓글 달기