使用ソフト: 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の宣言が上にないとだめ..?
よく分かってないですがとりあえずいけました