-1
C++에서 unordered_map 및 char *을 사용하여 명령 행 프로그램을 개발 중입니다.명령 행 매개 변수를 저장하는 C++ 순서가 지정되지 않은 맵
그러나 작동하지 않습니다.
여기 내 코드입니다.
내 아규먼트 목록을 제공
#include "stdafx.h"
#include <unordered_map>
int main(int argc, char *argv[])
{
std::unordered_map <char*, char*> hash;
for (int i = 1; i<argc; i++){
if (argv[i][0] == '-'){
hash[argv[i]] = argv[i+1];
}
}
if (hash["-file"]){
printf("Openning the file %s \n", hash["-file"]);
}else{
printf("Error open files \n");
return 0;
}
은} :
myprogram.exe -file "c:\myfile.txt" -option1 .....
이 입력 파일을 열 수 없습니다.
아무도 도와 줄 수 있습니까? @WhozCraig 코멘트에 말했듯이
당신에게
필자가 * lookup * 키로 전달한'char * '가 * 삽입 * 키로 사용 된지도의 키와 같은 실제 주소가 아닌 것을 알려 드리겠습니다. 하나는'argv []'에서 왔고, 다른 하나는 읽기 전용 리터럴이다. * 대부분의 경우, 포인터는 ** 당신이 원하는 키가 아닌 **입니다. (유용 할 수있는 상황이 있지만, 분명히 그들 중 하나는 아닙니다). 존이 잠깐 여기에 그것을 올려 놓았습니다. 맵의 키 유형으로'std :: string'을 사용하십시오. – WhozCraig