0

例を実行するフォルダー内のファイルに正常に書き込みます。

// I run "test" executable file in "TestWrite File" folder
const char *path="/home/kingfisher/Desktop/TestWrite File/xml/kingfisher.txt";
std::ofstream file(path); //open in constructor
std::string data("data to write to file");
file << data;

しかし、動的パス:*path = "/xml/kingfisher.txt"で書き込もうとすると、うまくいきません ( では問題Windowsありません) !! 上記のような動的パス (特定のパスではない) を使用して書き込むにはどうすればよいですか? ありがとう!

4

3 に答える 3

1

「動的パス」の意味がわかりません。動的パスは、動的に読み取られるパスです(したがって、おそらくにありますstd::string)。

一方、絶対パスと相対パスを混同しているようです。ファイル名が'/'(Unixの場合)またはa'/' またはaで始まり、 Windowsの'\\'場合は前に付く可能性がある場合、それは絶対です。ファイルの検索は、ファイルシステムのルート(Windowsの場合は指定されたドライブ上)から開始されます。他のすべての場合、それは相対的です。ファイルの検索は、現在の作業ディレクトリから開始されます。あなたの例では、とは両方とも 絶対 です。現在の作業ディレクトリがで ある場合、最初の絶対パス名で指定されたファイルを見つける必要があります。"d:""/home/kingfisher/Desktop/TestWrite File/xml/kingfiger.txt""/xml/kingfisher.txt""/home/kingfisher/Desktop/TestWrite File""xml/kingfisher.txt"

于 2012-10-09T08:42:13.217 に答える