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

📄 test_io.cpp

📁 更新mp3
💻 CPP
字号:
// $Id: test_io.cpp,v 1.6 2003/03/02 15:17:21 t1mpy Exp $#ifdef HAVE_CONFIG_H#  include <config.h>#endif#include <id3/readers.h>#include <id3/writers.h>#include <id3/io_decorators.h>#include <id3/io_helpers.h>#include <id3/io_strings.h>#include <id3/utils.h>using std::cout;using std::endl;using std::cerr;using namespace dami;intmain(size_t argc, const char** argv){  ID3D_INIT_DOUT();  ID3D_INIT_WARNING();  ID3D_INIT_NOTICE();  ID3_IStreamReader isr(cin);  BString orig = io::readAllBinary(isr);      cout << "input size:    " << orig.size() << endl;    cout << endl;  cout << "=== Testing Synchronization ===" << endl;  BString synced;  {    io::BStringReader sr(orig);    io::UnsyncedReader ur(sr);    synced = io::readAllBinary(ur);  }  cout << "synced size:   " << synced.size() << endl;  BString unsynced;  {    io::BStringWriter sw(unsynced);    io::UnsyncedWriter uw(sw);    uw.writeChars(synced.data(), synced.size());  }    cout << "unsynced size: " << unsynced.size() << endl;  BString resynced;  {    io::BStringReader sr(unsynced);    io::UnsyncedReader ur(sr);    resynced = io::readAllBinary(ur);  }  cout << "resynced size: " << resynced.size() << endl;  if (unsynced == orig)  {    cout << "orig == unsynced" << endl;  }  else  {    cout << "orig != unsynced" << endl;  }  if (synced == resynced)  {    cout << "synced == resynced" << endl;  }  else  {    cout << "synced != resynced" << endl;  }  cout << endl;  cout << "=== Testing Trailing Spaces ===" << endl;  String text;  {    io::StringWriter sw(text);    io::writeTrailingSpaces (sw, "hello, world", 50);  }  cout << "new text  = \"" << text << "\"" << endl;  String origText;  {    io::StringReader sr(text);    origText = io::readTrailingSpaces(sr, 100);  }  cout << "orig text = \"" << origText << "\"" << endl;  cout << endl;  cout << "=== Testing Binary Numbers ===" << endl;  String number;  {    io::StringWriter sw(number);    io::writeBENumber(sw, 1234567890, 4);  }  cout << "binary number:";  for (size_t i = 0; i < number.size(); ++i)  {    cout << " 0x" << hex << (size_t) (0xFF & number[i]) << dec;  }  cout << endl;  size_t val;  {    io::StringReader sr(number);    val = io::readBENumber(sr, 4);  }  cout << "orig number: " << val << endl;  cout << endl;  cout << "=== Testing Compression ===" << endl;  String compressed;  size_t origSize = orig.size();  cout << "origSize = " << origSize << endl;    {    io::StringWriter sw(compressed);    io::CompressedWriter cw(sw);    cw.writeChars(orig.data(), orig.size());    cw.flush();    if (origSize != cw.getOrigSize())    {      origSize = cw.getOrigSize();      cout << "cw.getOrigSize() = " << origSize << endl;    }  }  cout << "compressed size = " << compressed.size() << endl;  BString uncompressed;    if (origSize == 0)  {    cout << "no compression" << endl;  }  else  {    io::StringReader sr(compressed);    io::CompressedReader cr(sr, origSize);    uncompressed = io::readAllBinary(cr);    cout << "uncompressed size = " << uncompressed.size() << endl;  }  if (uncompressed.size() == orig.size())  {    if (uncompressed == orig)    {      cout << "orig == uncompressed" << endl;    }    else    {      cout << "orig != uncompressed" << endl;    }  }  String ascii;  ascii.reserve(8192);  for (size_t i = 0; i < 8192; ++i)  {    ascii += 'a' + (i % 26);  }  cout << endl;  cout << "ascii.size() = " << ascii.size() << endl;  String unicode = dami::convert(ascii, ID3TE_ASCII, ID3TE_UTF16BE);  cout << "uncicode.size() = " << unicode.size() << endl;  String ascii_2 = dami::convert(unicode, ID3TE_UTF16BE, ID3TE_ASCII);  if (ascii != ascii_2)  {    cout << "ascii != ascii_2" << endl;  }  else  {    cout << "ascii == ascii_2" << endl;  }  return 0;}

⌨️ 快捷键说明

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