2012-02-18 21 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で作業しているかどうかは言いませんでした。 "/"はどこでも使えますか? – Gowtham

+0

私は彼/彼女がWindowsで動作していると思う(ファイルパスではない - D:\ ....) – SlavaNov

+0

ああ、私は興味がありますが、スラッシュ( "/")はWindowsで動作しますか?私は同じ長いバックを試したときにうまくいかなかったことを覚えています... – Gowtham

1

から取られています。

\\を書かなければなりません。

注:openコールを確認する必要があります。失敗した

、failbitフラグが(失敗 部材で確認することができる)に設定され、例外を除いて設定された値に応じて、例外がスローさ てもよいです。

0

\はエスケープ文字なので、意図する結果を得るには\\を使用する必要があります。 これはここでもあなたは、たとえば、このような何かを書くためにそれを使用して旧姓のstackoverflowで、ほとんどどこにでも当てはまります。(それ以外の場合は、A *

(ちょうど*\を置く)*

同じことが2つのアスタリスク(太字のために真である... 2つのSLA:あなたは、テキストと意志を出力イタリックA、これを解釈します\)のstackoverflowを使用しない場合シーズ):

** A **

代わり

... :)

のか、それがあるので、多分あなたはそれを読むことができません」 secret_msg ":P(LOL)

関連する問題