2012-03-13 5 views
0
Deneme::Deneme(string FileName){ 

fstream textfile; 
textfile.open(FileName); 
} 

이렇게하면 오류가 발생하지만 textfile.open ("randomname"); 대신에 textfile.open (FileName); 아무런 문제가없는 것 같습니다. 왜 이런거야? 그것은 쉬운 질문 일지 모르지만 저는 초보자이며 이것의 해결책을 찾을 수 없습니다.FStream 클래스 및 문자열을 매개 변수로 사용

+0

관련 항목 : http://stackoverflow.com/questions/32332/why-dont-the-stdfstream-classes-take-a-stdstring –

답변

1

fstreams 만 const char*을 수락합니다. 대신 textfile.open(FileName.c_str()); 또는 fstream textfile(FileName.c_str());을 사용하십시오 (C++ 11은 const std::string&을 허용하지만). 다음은 생성자 및 함수가 선언되는 방법을 찾는 handy site입니다.

0

fstream의 open 메서드는 std :: string을 값으로 전달하는 동안 const char 포인터를 사용합니다. 이것이 오류 일 수 있다고 생각합니다. 시도 :

textfile.open(FileName.c_str()); 
0

표준 C++ 부합하는 시스템을 사용하여 C++ 2011 생성자와 std::string const&을 복용 open() 기능을 제공합니다. pre-C++ 2011 시스템의 경우 name.c_str()을 사용하여 파일 스트림에 전달해야합니다.

관련 문제