반응형
문자열을 여는 파일 경로로 사용하는 C ++ ifstream 오류.
나는 가지고있다:
string filename:
ifstream file(filename);
컴파일러는 ifstream 파일과 문자열이 일치하지 않는다고 불평합니다. 파일 이름을 다른 것으로 변환해야합니까?
오류는 다음과 같습니다.
error: no matching function for call to ‘std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(std::string&)’
/usr/include/c++/4.4/fstream:454: note: candidates are: std::basic_ifstream<_CharT, _Traits>::basic_ifstream(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]
변화
ifstream file(filename);
...에
ifstream file(filename.c_str());
생성자 때문에 ifstream
소요 const char*
아니라 string
사전 C ++ 11.
ifstream
생성자는 기대 const char*
당신이 할 필요가 있으므로, ifstream file(filename.c_str());
그것을 작동하게 할 수 있습니다.
C ++-11에서는 std :: string 일 수도 있습니다. 따라서 (c ++-11 설치 및) 프로젝트의 방언을 c ++-11로 변경하면 문제가 해결 될 수 있습니다.
참고 URL : https://stackoverflow.com/questions/6323619/c-ifstream-error-using-string-as-opening-file-path
반응형
'program tip' 카테고리의 다른 글
System.Drawing.Image를 C # 스트리밍 (0) | 2020.11.04 |
---|---|
메타 프로그래밍의 용도는 무엇입니까? (0) | 2020.11.04 |
경로의 대상에 파일을 생성하지 않고 Python에서 경로가 유효한지 확인하십시오. (0) | 2020.11.04 |
commons httpclient-GET / POST 요청에 쿼리 문자열 매개 변수 추가 (0) | 2020.11.04 |
데이터 파일에서 ASCII가 아닌 문자 제거 (0) | 2020.11.04 |