- ベストアンサー
デスクトップにfopen()したい(C言語)
#include <stdio.h> int main(){ FILE *fp; fp = fopen("デスクトップのパス\\ファイル名","w"); fclose(fp); return 0; } のようにして、デスクトップ上にファイルを作成したいと思ってます。 どうすればデスクトップのパスが取得できますか?教えてください!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 ああ、なるほど。「Windowsの種類や、ユーザ名に依存しないで調べる関数が知りたい」という意味ですね。 ⇒ SHGetSpecialFolderPath()
その他の回答 (2)
- asuncion
- ベストアンサー率33% (2127/6289)
Windowsのすべてのバージョンで使えるかどうかはわかりません。 #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { FILE *fp; char name[255]; // 配列の大きさは適切に確保すること strcpy(name, getenv("USERPROFILE")); strcat(name, "\\デスクトップ\\hoge.txt"); fp = fopen(name, "w"); fclose(fp); return 0; }
- notnot
- ベストアンサー率47% (4900/10358)
Windows系でしょうか。デスクトップのパスはOSによります。 方法はいろいろありますが、わかりやすい方法を。 まずデスクトップに目的のファイル名でファイルを作ります。 次にそのファイルのショートカットを作ります。 そのショートカットのプロパティを開いて、「リンク先」の部分を見るとパスがわかります。
補足
ご返答ありがとうございます。 プログラムを組みたいのでわざわざ調べて入力するとこはできません。 デスクトップのパスを調べる関数か何かを教えていただけると嬉しいです。
お礼
私の環境(XP)では正常に動きました。 ですが、windows7では「デスクトップ」ではなくアルファベットになっているので、使えません。ありがとうございました!