3

ofstreamで作成したファイルのディレクトリを取得したいです。私が書いたコードは次のようなものです

std::ofstream txt("sample.txt", std::ios::binary);

次に、いくつかを txt ファイルに書き込み、txt.close() を呼び出して ofstream を閉じます。書き込み中に、sample.txt ファイルの場所を取得して、sample.txt に書き込みたいと思います。たとえば、ディレクトリ パスは次のようになります。

/home/usr/Downloads/sample.txt

その全体を文字列として保存して、sample.txt ファイルに書き込めるようにします。誰でも助けることができますか?これをコーディングするためにLinuxを使用していますが、これを行うための普遍的な方法があればいいでしょう(Windows、Linux、Macなどで作業しています)。

4

2 に答える 2

4

移植可能なパス処理については、 Boost.Filesystemを調べる必要があります。ファイルシステムのないプラットフォームで実行している可能性があるため、C++ にはパスがあまりありません。ただし、 getcwdを使用して何かを取得し、出力とファイル名の間に「/」を追加することはできます。getcwd は C の一部ではありませんが、Windows では_getcwdとして利用できます。POSIX 準拠のシステムには正規のgetcwd. これは機能するはずです (ただし、たとえば、UNC パスなどから実行している場合など、まれに機能しないケースがあると確信しています)。

于 2011-03-24T16:49:40.570 に答える
0

Windows の場合は、手を差し伸べることができます。作業ディレクトリを取得 http://msdn.microsoft.com/en-us/library/sf98bd4y%28v=vs.80%29.aspx

 #include <direct.h>

 char cCurrentPath[MAX_PATH];
_getcwd(cCurrentPath,sizeof(cCurrentPath));

あなたが探しているもののように聞こえます。

OH OH OH ここを見 て 現在のディレクトリを取得するためのクロスプラットフォームの方法は何ですか?

于 2011-03-24T16:52:13.933 に答える