我正在编写一个应该读取 OFF 文件的类,但我遇到了以下问题:
如果我在 Code::Blocks 环境中编译它,一切正常。如果要加载的文件的第一行不是“OFF”,它将跳转到第二个 if 语句并退出程序...
但是,如果我在 cygwin 中使用 g++ 进行编译,则无论文件中实际写入什么,程序都会跳转到第二个 if 语句。有什么建议么?
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
polyeder offManager::readOFF(std::string filename)
{
//Open File
std::ifstream file(filename.c_str());
// If file couldn't be opened
if( !file.is_open() )
{
std::cerr << "ERROR: Konnte Datei \""
<< filename << "\" nicht oeffnen!"
<< std::endl;
exit (2);
}
// Test if the file really is an OFF File
std::string line;
std::string off ("OFF");
getline( file, line );
if ( line.compare(off) != 0 )
{
std::cerr << "ERROR: Datei \""
<< filename << "\" ist nicht im OFF Format!"
<< std::endl;
file.close();
exit (2);
}
...
}
如果我在 cygwin 中输入 g++ -v 我会得到以下信息: Blablabla Thread-Modell: posix gcc-Version 4.5.3 (GCC)
Code::Blocks 使用这个版本: 线程模型:win32 gcc version 4.4.1 (TDM-2 mingw32)