⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ioiter_test.cpp

📁 symbian 上的stl_port进过编译的。
💻 CPP
字号:
#include <string>#if !defined (STLPORT) || !defined (_STLP_USE_NO_IOSTREAMS)#include <sstream>#include <vector>#include <iterator>#include "cppunit/cppunit_proxy.h"#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)using namespace std;#endifclass IoiterTest : public CPPUNIT_NS::TestCase{  CPPUNIT_TEST_SUITE(IoiterTest);  CPPUNIT_TEST(ioiter_test);  CPPUNIT_TEST(assign_test);  CPPUNIT_TEST(assign2_test);  CPPUNIT_TEST_SUITE_END();protected:  void ioiter_test();  void assign_test();  void assign2_test();};CPPUNIT_TEST_SUITE_REGISTRATION(IoiterTest);void IoiterTest::ioiter_test(){  char c;  char *pc;  char *strorg = "abcd";  string tmp;  string objStr(strorg);  istringstream objIStrStrm1(objStr);  istringstream objIStrStrm2(objStr);  istringstream objIStrStrm3(objStr);  pc = strorg;  string::size_type sz = strlen(strorg);  string::size_type i;  for ( i = 0; i < sz; ++i ) {    c = *pc++;    tmp += c;  }  CPPUNIT_ASSERT( tmp == "abcd" );  istreambuf_iterator<char, char_traits<char> > objIStrmbIt1( objIStrStrm1.rdbuf() );  istreambuf_iterator<char, char_traits<char> > end;  tmp.clear();  for ( i = 0; i < sz /* objIStrmbIt1 != end */; ++i ) {    c = *objIStrmbIt1++;    tmp += c;  }  CPPUNIT_ASSERT( tmp == "abcd" );  tmp.clear();  istreambuf_iterator<char, char_traits<char> > objIStrmbIt2( objIStrStrm2.rdbuf() );  for ( i = 0; i < sz; ++i ) {    c = *objIStrmbIt2;    tmp += c;    objIStrmbIt2++;  }  CPPUNIT_ASSERT( tmp == "abcd" );  tmp.clear();  istreambuf_iterator<char, char_traits<char> > objIStrmbIt3( objIStrStrm3.rdbuf() );  while ( objIStrmbIt3 != end ) {    c = *objIStrmbIt3++;    tmp += c;  }  CPPUNIT_ASSERT( tmp == "abcd" );}void IoiterTest::assign_test(){  stringstream s( "1234567890" );  vector<char> v;  v.assign( istreambuf_iterator<char>(s), istreambuf_iterator<char>() );  CPPUNIT_CHECK( v.size() == 10 );  if ( v.size() == 10 ) {    CPPUNIT_CHECK( v[0] == '1' );    CPPUNIT_CHECK( v[9] == '0' );  }}void IoiterTest::assign2_test(){  stringstream s( "1234567890" );  vector<char> v;  v.assign( istreambuf_iterator<char>(s.rdbuf()), istreambuf_iterator<char>() );  CPPUNIT_CHECK( v.size() == 10 );  if ( v.size() == 10 ) {    CPPUNIT_CHECK( v[0] == '1' );    CPPUNIT_CHECK( v[9] == '0' );  }}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -