2017-09-09 2 views
1

이 코드를 사용하여 파일을 열어 읽으려고했지만 (비어 있지는 않음) ifstream이 작동하지 않음 - 파일을 열 수 없음 : 파일 열기 확인에 추가됨 ifstream은 파일을 열지도 못했습니다.ifstream이 amdinistrator 권한으로 파일을 열 수 없음

나는 관리자 권한을 프로그램에 제공했지만 ifstream은 여전히 ​​파일을 읽을 수 없습니다.

iffile이이 파일을 읽는 경로를 찾으려고 시도했지만 성공하지 못했고, 마지막으로 절대 경로를 사용하여 파일을 열려고 시도했지만 결과는 같습니다.

파일은 프로그램의 루트 폴더에 있지만 모든 곳에 배치되었으므로 아무 것도 변경되지 않았습니다.

#include <iostream> 
#include <string> 
#include <fstream> 

using namespace std; 

int main() { 
    string s; 
    ifstream file("fix.txt"); 
    if (file) 
     cout << "SUCCESSFULL OPENING" << endl; 

    while (getline(file, s)) { 
     cout << s << endl; 
     s += "+"; 
     cout << s << endl; 
    } 

    file.close(); 

    return 0; 
} 
+0

를 작성하여 더 자세한 정보를 얻을 다음

file.exceptions(std::ios_base::failbit); 

를 통해 스트림 활성화 예외에 의해 더 자세한 에러 코드에 액세스 할 수 있습니다 프로그램? 어디에서? 프로그램을 실행할 때 현재 디렉토리는 무엇입니까? 읽으려고하는 파일의 위치가 똑같습니까? 확실합니까***? –

+0

@ some-programmer-dude, 방금 Visual Studio IDE를 사용하여 파일을 실행했지만 프로그램에서 현재 디렉토리가 어떤 디렉토리인지 찾지 못했습니다. 그러나 프로그램에있는 모든 폴더에 파일을 저장 했으므로 효과가 없습니다. –

+0

Visual Studio에서 실행하면 기본 현재 디렉터리는 프로젝트 루트 디렉터리 IIRC (또는 작업 영역 루트?)가됩니다. 실행 가능 프로그램이있는 위치가 아닙니다. 프로젝트 설정에서 디렉토리를 변경할 수 있습니다. –

답변

0

당신은 당신이 당신의 실행 어떻게

try { 
    file.open("fix.txt"); 
} 
catch(std::ios_base::failure& f) { 
    // f.what() contains a message, f.code() returns a std::error_code 
} 
관련 문제