• 締切済み

Cから.xml ファイルを開くには

Cからxmlファイルを開きたいのですが、VC++でビルドして実行すると、 どうしてもファイルをオープンしてくれません。 なにか特別な設定でもあるのでしょうか。 ちなみにxml ファイルのプロパティは、読み取り専用にチェック入れない、 アーカイブ可能にするにチェック入れて、このファイルに対し、プロパティ だけでなくコンテンツにもインデックスをつける にチェックいれております。 宜しくお願いします。

みんなの回答

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.3

>sprintf(filename, "Result%d.xml", i); >fp = fopen((const char *)filename, "r"); お約束なアレですが… 実行時の「カレントディレクトリ」にファイルあるんですよね? 「カレントディレクトリってなぁに?」って言うのなら、まず検索してください。 # お約束ってくらい、よくひっかかる人が多いんですけどね。

beterugius
質問者

お礼

ありがとうございました。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

fopenがNULLを返したときのerrnoの値は何ですか。

beterugius
質問者

お礼

有難うございました。

beterugius
質問者

補足

エラーコード2番ですね。

回答No.1

どんなコードを書いて、どういう結果(コンパイルエラー、または関数の結果がエラーになった)になったかがわかれば力になれるかもしれません。

beterugius
質問者

お礼

ありがとうございます。

beterugius
質問者

補足

下記のようなコードです。ファイル名は Result0.xml です。(0から16) /////////////////////////////////// // 1商品の出品店ごとの価格の取得 // /////////////////////////////////// int get_price(){ char filename[15]; char buf[size]; char dest[5]; // 何ページ目かを入れる文字配列 char *tmp1; char *token1=NULL; // 作業用 char *token2=NULL; char *token3=NULL; char *token4=NULL; char *token5=NULL; char *token6=NULL; char *token7=NULL; // char *token8=NULL; int i, j, k, l=0; int price = 0; // 価格 int rec_num = 0; // レコード件数 long sum = 0; // 総合計金額 float average = 0; // 平均価格 FILE *fp=NULL; bool flag=true; // 商品ID切り替わりフラグ ////////////////////// // ファイルオープン // ////////////////////// for(i=0; i<16; i++){ sprintf(filename, "Result%d.xml", i); fp = fopen((const char *)filename, "r"); // Cではブロックの最初で変数宣言しないとダメ if(fp==NULL){ printf("ファイルのオープンに失敗しました"); return -1; }

関連するQ&A