私は2つのファイルを比較する必要があります。 私はこのようなものを使用しますBoost.Testとファイルを比較するには?
BOOST_REQUIRE_EQUAL(filename1, filename2);
私は2つのファイルを比較する必要があります。 私はこのようなものを使用しますBoost.Testとファイルを比較するには?
BOOST_REQUIRE_EQUAL(filename1, filename2);
BOOST_CHECK_EQUAL_COLLECTIONSを使用すると、ファイルの内容を比較できます。
コードサンプル:
#define BOOST_TEST_MAIN
#include <boost/test/unit_test.hpp>
#include <fstream>
#include <iterator>
BOOST_AUTO_TEST_CASE(test)
{
std::ifstream ifs1("data1.txt");
std::ifstream ifs2("data2.txt");
std::istream_iterator<char> b1(ifs1), e1;
std::istream_iterator<char> b2(ifs2), e2;
BOOST_CHECK_EQUAL_COLLECTIONS(b1, e1, b2, e2);
}
ファイルはありますか?両方を読んで内容を比較してください。
私は2つのファイルのハッシュを比較します。 opensslライブラリを使ってハッシュを計算する例はたくさんあります。
ForEveRの回答を読んだ後、ありがとうございました。しかし、バイナリモードを使用してファイルをオープンします。std :: ifstream ifs1( "data1.txt"、std :: ios :: binary); –
noskipwsフラグ=> std :: noskipws(ifs1)を設定することを忘れないでください。バイナリファイル内の空白のスキップを破棄してください。そうしないと、イテレータは空白をスキップし、\ tと\ nはスキップされますがファイルはまだ異なります。 – ovanes
e1とe2は反復の終了を示しています。 iteratorのbegin()およびend()メソッドを使用するほうがよいでしょうか。 私はこのようなものを使用しています(std :: vector): BOOST_CHECK_EQUAL_COLLECTIONS(b1.begin()、b1.end()、b2.begin()、b2.end()); –
Christian