我正在开发一个程序,当我尝试使用 Cygwin 进行编译时遇到了一些奇怪的编译器错误。该程序使用 Visual Studio C++ Express 编译和运行得很好,所以它似乎与 Cygwin 有关。所有错误似乎都是同一类型。这是一个代码示例:
int count_records(void)
{
EMPL_TYPE empl_rec;
fstream empl_infile;
empl_infile.open(filepath, ios::in|ios::binary);
int count = 0;
empl_infile.read((char *) &empl_rec, sizeof(empl_rec));
while (!empl_infile.eof())
{
count++;
empl_infile.read((char *) &empl_rec, sizeof(empl_rec));
}
empl_infile.close();
cout << "Records Counted: " << count << endl;
return count;
}
这是与该部分相关的错误:
Assignment2.cpp:在函数int count_records()':
Assignment2.cpp:34: error: no matching function for call to
std::basic_fstream >::open(const std::string&, std::_Ios_Openmode)' /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/fstream: 819:注意:候选人是: void std::basic_fstream<_CharT, _Traits>::open(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits]
同样,在使用 Visual Studio 编译时,仅使用 Cygwin 时我没有收到此错误。如果有人有任何想法,将不胜感激。谢谢你。