当前位置: 首页>>代码示例>>C++>>正文


C++ IReader::readDouble方法代码示例

本文整理汇总了C++中IReader::readDouble方法的典型用法代码示例。如果您正苦于以下问题:C++ IReader::readDouble方法的具体用法?C++ IReader::readDouble怎么用?C++ IReader::readDouble使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IReader的用法示例。


在下文中一共展示了IReader::readDouble方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: opaque

// FIXME, no handling of arrays yet
bool DefaultExtensionHandler::opaque(unsigned int len, IReader& reader,
		unsigned int tagID, int attributeID, MutableAttributes& atts,
		vector<wstring>& value) {
	// read type
	unsigned char type;
	if (!reader.readByte(type))
		return false;
	if (debug) cout << " : Type: "<< atts.getTypeName((IAttributes::Types)type);
	len--;

	switch (type) {
	case IAttributes::BOOLEAN:
		if (len == 1) {
			bool b;
			if (!reader.readBoolean(b))
				return false;
			atts.set(attributeID, b);
			len--;
		} else {
			//			boolean[] array = new boolean[len];
			//			for (int i=0; i<array.length; i++) {
			//				array[i] = in.readByte() != 0;
			//				len--;
			//			}
			//			atts.set(attributeID, array);
		}
		break;
	case IAttributes::BYTE:
		if (len == 1) {
			unsigned char b;
			if (!reader.readByte(b))
				return false;
			atts.set(attributeID, b);
			len--;
		} else {
			//			byte[] array = new byte[len];
			//			for (int i=0; i<array.length; i++) {
			//				array[i] = in.readByte();
			//				len--;
			//			}
			//			atts.set(attributeID, array);
		}
		break;
	case IAttributes::CHAR:
		if (len == 2) {
			wchar_t c;
			if (!reader.readChar(c))
				return false;
			atts.set(attributeID, c);
			len-=2;
		} else {
			//			char[] array = new char[len/2];
			//			for (int i=0; i<array.length; i++) {
			//				array[i] = in.readChar();
			//				len-=2;
			//			}
			//			atts.set(attributeID, array);
		}
		break;
	case IAttributes::DOUBLE:
		if (len == 8) {
			double d;
			if (!reader.readDouble(d))
				return false;
			atts.set(attributeID, d);
			len -= 8;
		} else {
			//			double[] array = new double[len/8];
			//			for (int i=0; i<array.length; i++) {
			//				array[i] = in.readDouble();
			//				len-=8;
			//			}
			//			atts.set(attributeID, array);
		}
		break;
	case IAttributes::FLOAT:
		if (len == 4) {
			float f;
			if (!reader.readFloat(f))
				return false;
			atts.set(attributeID, f);
			len -= 4;
		} else {
			//			float[] array = new float[len/4];
			//			for (int i=0; i<array.length; i++) {
			//				array[i] = in.readFloat();
			//				len-=4;
			//			}
			//			atts.set(attributeID, array);
		}
		break;
	case IAttributes::INT:
		if (len == 4) {
			int i;
			if (!reader.readInt(i))
				return false;
			atts.set(attributeID, i);
			len -= 4;
		} else {
//.........这里部分代码省略.........
开发者ID:,项目名称:,代码行数:101,代码来源:


注:本文中的IReader::readDouble方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。