- 締切済み
Cから.xml ファイルを開くには
Cからxmlファイルを開きたいのですが、VC++でビルドして実行すると、 どうしてもファイルをオープンしてくれません。 なにか特別な設定でもあるのでしょうか。 ちなみにxml ファイルのプロパティは、読み取り専用にチェック入れない、 アーカイブ可能にするにチェック入れて、このファイルに対し、プロパティ だけでなくコンテンツにもインデックスをつける にチェックいれております。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Wr5
- ベストアンサー率53% (2173/4061)
>sprintf(filename, "Result%d.xml", i); >fp = fopen((const char *)filename, "r"); お約束なアレですが… 実行時の「カレントディレクトリ」にファイルあるんですよね? 「カレントディレクトリってなぁに?」って言うのなら、まず検索してください。 # お約束ってくらい、よくひっかかる人が多いんですけどね。
- wormhole
- ベストアンサー率28% (1626/5665)
fopenがNULLを返したときのerrnoの値は何ですか。
お礼
有難うございました。
補足
エラーコード2番ですね。
- maru_yoshi_
- ベストアンサー率39% (17/43)
どんなコードを書いて、どういう結果(コンパイルエラー、または関数の結果がエラーになった)になったかがわかれば力になれるかもしれません。
お礼
ありがとうございます。
補足
下記のようなコードです。ファイル名は 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; }
お礼
ありがとうございました。