[C++Builder2007]ifstreamクラスでエラー

使用ソフト: C++Builder2007

ifstreamクラスを使うとCodeGuardでエラーが..

パラメータ不正 処理中: Project1.exe(284) - c:\program files\codegear\rad studio\5.0\include\dinkumware\fstream#24
関数に不正なファイル/パイプ ストリーム (0x3289E484) が渡されました。
0x0040B6EC 呼び出し先: fgetc(0x3289E484)
0x0040B13A - c:\program files\codegear\rad studio\5.0\include\dinkumware\fstream#24
0x0040A0A1 - c:\program files\codegear\rad studio\5.0\include\dinkumware\fstream#343
0x00409F71 - c:\program files\codegear\rad studio\5.0\include\dinkumware\fstream#323
0x0040407A - c:\program files\codegear\rad studio\5.0\include\dinkumware\streambuf#103
0x004023E2 - c:\program files\codegear\rad studio\5.0\include\dinkumware\string#572
0x004021DD - C:\sample\File1.cpp#149

プロジェクト>オプション
リンカ>リンク
で「動的RTL」を外すとエラーでなくなりました

さらに、ifstreamを呼ぶメソッドの順でエラーが発生


int main(int argc, char* argv[])
{
execCsvSample();
}

void inputCsv(ifstream& ifs)
{
string str;
while (getline(ifs, str, ',')) {
cout << str << endl;
}
}

void execCsvSample()
{
ifstream ifs("sample.csv");
inputCsv(ifs);
}

これだと怒られる
[BCC32 エラー] File1.cpp(128): E2285 'getline(ifstream,string,char)' に一致するものが見つからない


int main(int argc, char* argv[])
{
execCsvSample();
}

void execCsvSample()
{
ifstream ifs(“sample.csv”);
inputCsv(ifs);
}

void inputCsv(ifstream& ifs)
{
string str;
while (getline(ifs, str, ‘,’)) {
cout << str << endl;
}
}

これなら大丈夫

ifstreamの宣言が上にないとだめ..?

よく分かってないですがとりあえずいけました

カテゴリーC++

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください