• ベストアンサー

デスクトップにfopen()したい(C言語)

#include <stdio.h> int main(){    FILE *fp;    fp = fopen("デスクトップのパス\\ファイル名","w");    fclose(fp);    return 0; } のようにして、デスクトップ上にファイルを作成したいと思ってます。 どうすればデスクトップのパスが取得できますか?教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

No1です。 ああ、なるほど。「Windowsの種類や、ユーザ名に依存しないで調べる関数が知りたい」という意味ですね。 ⇒ SHGetSpecialFolderPath()

その他の回答 (2)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

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; }

newtgecko
質問者

お礼

私の環境(XP)では正常に動きました。 ですが、windows7では「デスクトップ」ではなくアルファベットになっているので、使えません。ありがとうございました!

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

Windows系でしょうか。デスクトップのパスはOSによります。 方法はいろいろありますが、わかりやすい方法を。 まずデスクトップに目的のファイル名でファイルを作ります。 次にそのファイルのショートカットを作ります。 そのショートカットのプロパティを開いて、「リンク先」の部分を見るとパスがわかります。

newtgecko
質問者

補足

ご返答ありがとうございます。 プログラムを組みたいのでわざわざ調べて入力するとこはできません。 デスクトップのパスを調べる関数か何かを教えていただけると嬉しいです。

関連するQ&A