2016-07-24 1 views
0
ifstream infile; 
infile.open("BONUS.txt"); 

string info; 

    if (!infile) 
     cout << "File Open Failure" << endl; 
    else 
    { 
     while (infile >> info) 
      cout << info << endl; 
      infile.close(); 
    } 

이것은 내 코드입니다. 그리고 내가하는 일과 상관없이 항상 내 파일을 열 수 없습니다. if와 exit를 입력합니다. 무엇이 문제 일 수 있습니까? 내 텍스트 파일이 올바른 디렉토리에 저장되고 아무 문제가없는 것으로 보입니다.명백한 이유 때문에 C++ open()이 작동하지 않습니다.

+5

IDE에서 실행하는 경우 현재 디렉토리가 사용자가 생각하는대로되지 않을 수 있습니다. 테스트로서 파일의 전체 경로를 시험해보십시오. –

+1

파일의 위치는 어디입니까? –

+1

['if body '(http://en.cppreference.com/w/cpp/io/c/perror)에'perror()'를 써서 파일이 열리지 않은 이유를 출력하십시오. 만약 그 것이 잘못되었다는 것을 설명하지 못하면, 질문을 편집하고'perror' 결과를 추가하십시오. 여기 누군가가 메시지 해석에 도움을 줄 수 있습니다. – user4581301

답변

0

open()에는 열린 파일과 모드의 두 매개 변수가 있습니다. 이 모드는 등, 읽기, 쓰기 즉, 해당 파일로 수행 할 수있는 작업을 의미

open()를 사용하는 경우 여섯 개 가능한 모드가 있습니다 :

  1. 매개 변수 입력 in 스탠드. internal stream buffer은 입력을 가능하게합니다. 파일을 읽는 데 사용하십시오.
  2. 매개 변수 out은 출력을 나타냅니다. same internal buffer을 사용하면 출력이 가능합니다. 파일에 쓸 때 사용하십시오.
  3. 매개 변수 binary을 사용하면 모든 작업을 텍스트 대신 이진 형식으로 수행 할 수 있습니다.
  4. 매개 변수 ateat end의 약자이며 파일의 끝에서 출력을 시작합니다.
  5. 매개 변수 appappend을 나타내고 출력 이벤트는 파일의 끝에서 발생합니다.
  6. trunctruncate을 나타냅니다. 존재하기 전에 존재하는 모든 내용이 삭제됩니다.

파일에 쓰고 싶다면 out을 사용하는 것 같습니다.

ifstream infile; 
infile.open("BONUS.txt", out); 

올바른 모드를 사용하지 않으면이 기능이 실패합니다. 더 궁금한 점이 있으면 fstream::open()입니다.

관련 문제