• ベストアンサー

エラー C2664

プログラミングの初心者です. 「error C2664: 'fclose' : 1 番目の引数を 'const char [14]' から 'FILE *' に変換できません。 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。」 以上のエラー文がでてきて, http://tipstips.client.jp/ugopen/UfuncErrorW32.html ↑の操作をしても消えませんでした. エラー文の出てきたのは fclose("sikisaizu.csv"); というところです. よければヒント等を教えていただけると嬉しく思います. よろしくお願い致します.

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

  • ベストアンサー
回答No.2

fcloseの引数はFILE*型です。fcloseする前にfopenしているはず。そのときの戻り値でfclose します。 (例) FILE* fp; fp=fopen("sikisaizu.csv",mode); : fclose(fp);

mitti0157
質問者

お礼

無事コンパイルできました! わかりやすい回答ありがとうございます.

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

ヒントもなにも。。。 エラーメッセージを読めば。。。 ちなみに、fcloseは文字列を引数とするのではなくファイルポインタを引数とします。

mitti0157
質問者

お礼

勉強不足でした. 回答ありがとうございます.

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 意味がわからないエラーがあります【14歳からはじめるC言語ゲームプログラミング】

    14歳からはじめるC言語ゲームプログラミング(横スクロールアクションゲーム)をやっていて、第5章で意味がわからないエラーがでました・・・ error C2664: 'MessageBoxW' : 2 番目の引数を 'const char [25]' から 'LPCWSTR' に変換できません。 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 というもので、chap4.cppの23行目と67行目でひっかかりました。 どうすれば解決できますでしょうか。 C言語に詳しい方、よろしくおねがいします。

  • error C2664

    現在VisualStudio C++ 6.0にてプログラムを組んでいるのですが、以下のようなエラーが出ます。 型の変換ができていないであろうことはわかるのですが、解決方法がわかりません。 どのような解決方法があるのでしょうか? よろしくお願いします。 error C2664: 'strcat' : 1 番目の引数を 'unsigned char [256]' から 'char *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。

  • Visual C++

    超ド素人でVisual C++の入門本を開けたばかりなのですが、いきなりつまずいてしまいました。 本に書いてあるプログラムをコピーしてビルドしてもエラーが出ます。 「error C2664: 'lstrcpyW' : 1 番目の引数を 'char [80]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。」 と出ます。書籍はVC++5.0/6.0対応で、使っているのはVisual Studio2005のVC++です。バージョンが違うのでエラーが出るのでしょうか?

  • C言語のキャスト

    キーボード操作で見たい画像を切り替えるというプログラムを作成しようとしているのですがエラーが起きてしまい出来ません。 例えば、キーボードで「a」と押せばAの画像が出るように文字列にAの画像のファイル名を代入して画像を表示させようと思ったのですが、 const char [2]' から 'char' に変換できません。 この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。 というエラーが出てきます。 キャストという言葉は聞いたことがあるのですが、よくわかりません。 だれか教えてください。お願いします。

  • VC++2008のC2664エラー

    VisualStdio2008で、現在手を出しているARToolKitを利用したプログラムです。 卒研に使うもので以前別の方が作ったプログラムなのですが、C2664というエラーが発生し、その解決方法がよくわからないので質問します。 以下が、該当する部分のソースです。また、エラーの文章もそのままあげています。 左に書いてあるのは行数です。 「*cparam」が「char **からARParam *へ変換できない」と言うものなのですがどうすれば解決できるでしょうか。 一応、いくつかのサイトも見てみましたがよくわからなかったので質問しました。 解決方法を教えてくださるとありがたいです。 int xsize; int ysize; char *vconf = "Data/WDM_camera_flipV.xml"; //ビデオデバイスの設定ファイル char *cparam = "Data/camera_para.dat"; //カメラパラメータファイル //初期化関数 static void init(void) { ARParam wparam; int i; /*ビデオデバイス設定*/ if(arVideoOpen(vconf) < 0) exit(0); /*ウィンドウサイズ取得*/ if(arVideoInqSize(&xsize,&ysize) < 0) exit(0); printf("Image size(x,y) = (%d,%d)\n",xsize,ysize); /*カメラパラメータ読み込み*/ if (arParamLoad(cparam,1,&wparam) < 0){ printf("Camera parameter load error !!\n"); exit(0); } /*カメラパラメータ初期化*/ 95 arParamChangeSize(&wparam,xsize,ysize,&cparam); 96 arInitCparam(&cparam); 97 printf("*** Camera Parameter ***\n"); 98 arParamDisp(&cparam); /*パターンファイル読み込み*/ for (i = 0; i < OBJ_NUM; i++){ if( (object[i].patt_id = arLoadPatt(object[i].patt)) < 0){ printf("pattern load error : %s\n", object[i].patt); exit(0); } } /*gsubライブラリ初期化*/ 109 argInit(&cparam, 1.0, 0, 2, 1, 0); mqoInit(); } 1>f:\卒検\プログラムセット\カメラキャリブレーション\kakotest\kakotest\kakotest.cpp(95) : error C2664: 'arParamChangeSize' : 4 番目の引数を 'char **' から 'ARParam *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>f:\卒検\プログラムセット\カメラキャリブレーション\kakotest\kakotest\kakotest.cpp(96) : error C2664: 'arInitCparam' : 1 番目の引数を 'char **' から 'ARParam *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>f:\卒検\プログラムセット\カメラキャリブレーション\kakotest\kakotest\kakotest.cpp(98) : error C2664: 'arParamDisp' : 1 番目の引数を 'char **' から 'ARParam *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>f:\卒検\プログラムセット\カメラキャリブレーション\kakotest\kakotest\kakotest.cpp(109) : error C2664: 'argInit' : 1 番目の引数を 'char **' から 'ARParam *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

  • VC++にてCString型のフルパスをfopenする

    VC++(VisualStudio2005)にてCString型のフルパスをfopenしたいと思っています。 他ページでは char *name = new char[filepass.GetLength()+1]; strcpy( name, filepass ); でstrcpyでCstring→charへ変換できるとあったのですが、 'strcpy' : 2 番目の引数を 'CString' から 'const char *' に変換できません。(新しい機能 ; ヘルプを参照) 1> この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。 というエラーをはいて実行できませんでした。 lstrcpy(name, filepass)でも 1 番目の引数を 'char [100]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 となりました。 何か良い方法をご存じないですか? char型に変換できなくとも、結果的にfopenを使ってファイルオープンできれば良いです。

  • Visual Studio 6.0でビルド可能だったものがVisual C++ 2008 Express Editionでerror C2664発生

    お世話になります。 Visual Studio 6.0でビルド可能だったものがVisual C++ 2008 Express EditionでエラーC2664を出してしまい解決法を模索しております。 同様のトラブルを調べてみましたが、例えば「文字セット」を「マルチ バイト文字セットを使用する」にしても改善されませんでした。 void time_sobi(int sobi_time){ long time1,time2 ; time(&time1); time2=time1; while(labs(time1-time2)<sobi_time){ time(&time1); } } 上述の部分で: s\jun\デスクトップ\hight\hight.cpp(112) : error C2664: 'time' : 1 番目の引数を 'long *' から 'time_t *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>c:\documents and settings\jun\デスクトップ\hight\hight.cpp(115) : error C2664: 'time' : 1 番目の引数を 'long *' から 'time_t *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 とメッセージが出て、該当する部分はそれぞれ3,6行目のtime(&time1);です。 ご教示くださる方いらっしゃいましたら宜しくお願い致します。

  • strcpyについて

    strcpyでコピーしたものを配列に入れていきたいのですが、やってみると 「'=' : 'char *' から 'char' に変換することはできません。この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。」とエラーが出ました。 strcpyでコピーしたものを配列に入れることはできないのですか?

  • C言語のキャストについて

    お世話になります。 CRC-16の計算プログラムをC言語でつくりました。 例えば・・・1F 08 00 00 12 34 なら“1F0800001234”と入力すると【EEC2】と表示するプログラムです。 ただ・・・.Net SDKでコンパイルするとできたのですが、Visual C++2008でコンパイルするとエラーが出てしまいます。 (48) : error C2664: 'strlen' : 1 番目の引数を 'unsigned char [256]' から 'const char *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 (52) : error C2664: 'strtol' : 1 番目の引数を 'unsigned char [3]' から 'const char *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 型変換が必要ってことまではわかったのですが・・・必要なのはわかって行き詰まり状態です。。。 どのようしたらよいのでしょうか?ご教授をよろしくお願いします。 ソースは以下の通りです。 #include "stdafx.h" #include <stdio.h> #include <string.h> #include <stdlib.h> unsigned short crc_cal(unsigned short lng, unsigned char *str) { unsigned short crc, i, j, t; t= 0x0000; crc = 0xffff; for (i = 0; i < lng ; i++) { crc ^= (unsigned short) str[i]; t = (unsigned short) str[i]; for (j = 1; j <= 8; j++) { if (crc & 1) { // carry bit on crc = crc >> 1; crc ^= 0xa001; } else { // carry bit off crc = crc >> 1; } } } return crc; } int main(void) { unsigned char str[256],data[128],hexstr[3]; unsigned short crc,CRC,len; while(1) { printf("Please input key (HEX)\n"); scanf("%255s",str); hexstr[2]='\0'; for(len=0; len<(strlen(str)/2) ;len++) { hexstr[0]=str[len*2]; hexstr[1]=str[len*2+1]; data[len]=(unsigned char)strtol(hexstr, NULL, 16); } crc = crc_cal(len,data); CRC = (crc>>8) | (crc<<8); printf("\nCRC16 = %04X\n\n", CRC); } return 0; }

  • VS2005 UDX

    VisualStudio2005を購入し、ゲーム開発に優れていると聞くUDXを使おうと思い、早速セットアップに書いてある説明通りに手を進めました。 しかし何度やってもエラーが多発します。内容は error C2660: 'fopen_s' : 関数に 2 個の引数を指定できません。 error C2664: 'Debug' : 1 番目の引数を 'const char [16]' から 'LPCTSTR' に変換できません。(新しい機能 ; ヘルプを参照) 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 でした。これは一部で、似たようなエラーが数十件もありました。 自身でも何とかしようと思って書き直した場所は #include "stdafx.h" をはじめに追加した所と、古い形式として宣言されました。と言われたので fopenをfopen_sに直した所です。 いろいろと試しましたが、私が手を加えると悪化する一方なのでで質問させていただきました。 こんな私ですが、どなたかVisualStudio2005やUDXに詳しい方がおられましたらよろしくお願い致します。