2016-11-12 23 views
0

元のプログラムが保存されていない別のディレクトリにファイルを作成したいとします。C言語のブラウジングディレクトリを変更する方法

FILE * fp; 
fp=fopen("a.txt","w"); 

ただし、ファイルの作成/書き込み先のディレクトリを変更したいとします。一般fopen

+0

LinuxおよびPOSIXでは、[chdir(2)](http://man7.org/linux/man-pages/man2/chdir.2.html)を参照してください。しかし、http://advancedlinuxprogramming.com/を最初に読んでください –

答えて

0

このようsyntaxedれる:名前だけを指定した場合、実行可能ファイルと同じフォルダ内にあるものとする

fopen("path/to/file", ...)

。だから、あなたは別のフォルダで何かをしたい場合は、このような、そのフォルダのパスを入れなければならない。

fp = fopen("<path>/a.txt", "w");

1

それはあなたが使用しているオペレーティングシステムの種類によって異なります。

(あなたがそのディレクトリに書き込み権限を持っていると仮定)Linuxまたは同様のシステムを使用している、とあなたはディレクトリ/home/username/folderでファイルを作成したい場合は、単に行うことができます。

FILE * fp; 
fp=fopen("/home/username/folder/a.txt","w"); 

あなたの場合Windowsを使用して、あなたはC:\Users\username\folderでファイルを作成する(書き込み権限を仮定して)、あなたが行うことができますされています。私たちが持っている場合ので、あなたは、Windowsプラットフォーム上のパスのため\文字をエスケープする必要が

FILE * fp; 
fopen("C:\\Users\\username\\folder\\a.txt", "w"); 

注意\(バックスラッシュ)は、文字列内でエスケープシーケンスとして解釈され、\nまたは\tなどの次の文字に暗黙的に関連付けられます。しかし、エスケープシーケンスを使用しておらず、実際には\が必要なので、エスケープシーケンス\\を挿入する必要があります。

@starkで指摘されているように、\\ではなく、文字列内のパスに/(スラッシュ)を使用することもできます。

+1

Windowsは正に永遠にスラッシュを受け入れています。 – stark

+0

okありがとうございます。しかし、なぜあなたのパスに\\を使ったのですか? – CraizeeNube

+0

@CraizeeNube:私はそれについての説明を追加しました。 – skrtbhtngr

関連する問題