OFF ファイルを読み取るクラスをコーディングしていますが、次の問題が発生しています。
Code::Blocks 環境内でコンパイルすると、すべて正常に動作します。ロードするファイルの最初の行が「OFF」と異なる場合、2 番目の if ステートメントにジャンプしてプログラムを終了します...
ただし、cygwin で g++ を使用してコンパイルすると、ファイルに実際に何が書き込まれているかに関係なく、プログラムは 2 番目の if-Statement にジャンプします。助言がありますか?
#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-Model: posix gcc-Version 4.5.3 (GCC)
Code::Blocks はこのバージョンを使用します: スレッド モデル: win32 gcc バージョン 4.4.1 (TDM-2 mingw32)