2013-09-08 4 views
1

나는 패턴과 텍스트 파일의 이름으로 구성된 단일 입력 줄을 사용하는 프로그램을 작성하고 있습니다. 프로그램은 주어진 텍스트 파일을 검색하여 주어진 패턴을 찾습니다.텍스트 파일에서 읽기 C++에서

I는 입력을 받아 두 개의 문자열로 변환 : 패턴과 FILE_NAME 나는 다음 줄에 오류가 : 나는 다음에 변경할 때

ifstream text(file_name); 

, 그것은 잘 컴파일합니다.

ifstream text("file_name"); 

파일 이름은 사용자의 입력에 의해 결정되어야하기 때문에 분명히 원하는 것은 아닙니다.

파일 이름이 변경되면이 컴파일을 어떻게 할 수 있습니까? C++ 03

+0

'file_name'의 종류와 컴파일러의 버전은 무엇입니까? – billz

+0

'file_name'을 std :: string으로 만들고 잘 동작해야합니다. (이것은 우리가 2013 년에 큰 소리로 울부 짖기 때문에 C++ 11을 가정 한 것입니다 : v) –

+0

file_name이 std :: string이고, file_name.c_str()을 사용하면 문제가 사라질 것입니다. – goji

답변

4

, ifstreamconst char* 매개 변수를, 당신은 시도 할 수 :

ifstream text(file_name.c_str()); 

는 C++ 11, 첫 번째 문은 작동해야하지만.

+0

Nice. C++ 11에서 추가 된 오버로드를 알아 채지 못했습니다. 항상 새로운 놀라움을 찾으십시오. – goji

+0

그것이 우리가 C++ 11을 좋아하는 이유입니다. :) – billz