2012-02-18 5 views
1

디렉토리에 파일이 있지만 파일을 읽으려고하는데 그럴 수 없습니다. 내 코드가 잘못되었습니다. 예를 이스케이프 문자로 사용되는 문자열 리터럴 \에서 http://www.cplusplus.com/forum/beginner/37208/파일을 읽을 수 없습니다. C++

#include <iostream> 
#include <fstream> 
#include <string> 
#define MAX_LEN 100 
using namespace std; 
string inlasning() 
{ 
    string text; 
    string temp; // Added this line 

    ifstream file; 
    file.open ("D:\education\Third course\semestr 2\security\lab1.2\secret_msg.txt"); 

    while (!file.eof()) 
    { 
    getline (file, temp); 
    text.append (temp); // Added this line 
    } 


    cout << "THE FILE, FOR TESTING:\n" // For testing 
     << text << "\n"; 

    file.close(); 

    return text; 
} 
void main() 
{ 
inlasning(); 
} 
+0

출력은 무엇입니까? – SlavaNov

+0

문자열에 \ 특별한 "뒤에 오는 것"이 ​​무엇인지 기억하십시오. – Gowtham

답변

4

파일 경로가 \에서 \\으로 변경됩니다. (또는 /)

+0

OP는 Windows/Linux/Mac에서 작동하는지 OP가 말하지 않았습니다. "/"는 어디에서나 사용할 수 있습니까? – Gowtham

+0

나는 그/그녀가 Windows에서 작동한다고 생각한다. (파일 경로가 아니라 - D : \ ....) – SlavaNov

+0

아, 네, 궁금 해서요, 슬래시 ("/")가 Windows에서 작동합니까? 같은 길이의 백을 시도했을 때 작동하지 않는다는 것을 기억합니다 ... – Gowtham

1

에서 가져옵니다.

\\으로 작성해야합니다.

참고 : open 전화를 확인해야합니다.

가 실패에서 failbit 플래그 ( 실패 부재로 확인 될 수있다), 및 예외 예외 설정 값에 따라이 발생 될 수있다 설정된다.

0

\은 이스케이프 문자이므로 의도 한 결과를 얻으려면 \\을 사용해야합니다.

* A *

(단지 * 전에 \을 넣어), 그렇지 않으면 (: 이것은 예를 들어 이런 식으로 뭔가를 쓰기 위해 그것을 사용하는 태어나 셨 어디에서 유래에서도 여기에, 거의 모든 곳에서 참

같은 두 개의 별표 (굵게 마찬가지입니다 ...이 SLA : 당신은 텍스트와 의지를 출력 기울임 A,이 해석됩니다 \)에 유래를 사용하지 않는 경우 급히 드릴 말씀) :

** **

대신

... :

의 나이기 때문에 어쩌면 당신이 그것을 읽을 수 없습니다 " secret_msg " : P (LOL)

관련 문제