4

WindowsからMacに移行しましたが、ファイルの入出力クラスで問題が発生しています:ifstreamofstream

Windowsでg++/コードブロックを使用して実行する場合

ofstream out("output.txt");
out << "TEST";
out.close();

同じディレクトリに新しいファイル「output.txt」が作成されます。

ただし、MAC OS Xでは、このファイルは私のホームディレクトリ/Users/USER_NAME/output.txtに作成されます。

このファイルを実行可能ファイルと一緒に同じディレクトリに置くにはどうすればよいですか?

PS私はGCCとCodeBlocksを使用しています。プロジェクトはありません-私はただ単一のソースファイルをコンパイルしています。

4

4 に答える 4

5

ストリームクラスは、他のすべてのファイルを開く関数と同様に、相対パスを指定するときに現在のディレクトリを使用します。のような関数を使用して現在のディレクトリを制御できますが、より適切な解決策は、完全修飾ファイル名を使用することです。次に、現在のディレクトリに対するプログラムの依存関係を削除します。chdir

于 2010-10-25T17:09:43.953 に答える
2

ファイルは、現在の作業ディレクトリに作成されるだけです。作業ディレクトリを変更するか、フルパスを指定してください。

于 2010-10-25T17:10:33.517 に答える
1

作業ディレクトリは、プログラムの起動時に最初に設定されます。コマンドラインから起動すると、シェルから現在の作業ディレクトリが継承されます。CodeBlockでは、プロジェクトオプションの1つは、デバッグ実行の実行作業ディレクトリです。

http://www.gamedev.net/community/forums/topic.asp?topic_id=571206&whichpage=1� も参照してください)

于 2010-10-26T11:28:41.980 に答える
0

作成しようとしているファイルへの完全な絶対パスを指定する必要があります。

于 2010-10-25T17:07:31.553 に答える