나는 가장 기본적인 것을하려고하고 있고 벽돌 벽을 치고 있습니다. 나중에 프로그램에서 사용하기 위해 명령 줄에서 파일 이름을 읽으려고하는데 argv []에서 이름을 추출하는 것처럼 보이지 않습니다. 코드는 다음과 같습니다.char ** argv [] 명령 행에서 입력을 얻으려고 할 때 segfaults
#include <iostream>
#include <string.h>
using namespace std;
int main(int argc, char **argv[]){
cout << "argc = " << argc << "\n\n";
cout << "Filename: " << argv[1] << "\n";
return 0;
}
오류 검사가 없으므로 인수를 제공하는 입력에서 테스트 할 것입니다. 여기에 내가 프로그램을 실행할 때 내가 무엇을 얻을 :
./a.out testfilename
*
argc = 2
Filename: 0x7fff56e41d30
가 지금은 ARGV [1] 문자의 배열에 대한 포인터 이해를, 그래서이 출력은 의미가 있습니다. 내가 [1] 실제 문자열을 꺼내 역 참조 변수는 argv에 시도에서 다음과 같이 변경,
cout << "Filename: " << argv[1] << "\n";
cout << "Filename: " << *argv[1] << "\n";
을 할 경우, 전 세그먼트 오류를 얻을 ..
가능 중복 (http://stackoverflow.com/questions/4207134/what-is-the -proper-of-main) –