📄 big_io.cpp
字号:
/************************************************** BigInt Stream I/O Source File ** (C) 1999-2002 The Botan Project **************************************************/#include <botan/bigint.h>#include <iostream>namespace Botan {/************************************************** Write the BigInt into a stream **************************************************/std::ostream& operator<<(std::ostream& stream, const BigInt& n) { Encoding code = Decimal; if(stream.flags() & std::ios::hex) code = Hexadecimal; else if(stream.flags() & std::ios::oct) code = Octal; if(n == 0) stream.write("0", 1); else { if(n < 0) stream.write("-", 1); SecureVector<byte> buffer = encode(n, code); u32bit skip = 0; while(buffer[skip] == '0' && skip < buffer.size()) skip++; stream.write((char*)buffer.ptr() + skip, buffer.size() - skip); } if(!stream.good()) throw Stream_IO_Error("BigInt output operator has failed"); return stream; }/************************************************** Read the BigInt from a stream **************************************************/std::istream& operator>>(std::istream& stream, BigInt& n) { std::string str; std::getline(stream, str); if(stream.bad() || (stream.fail() && !stream.eof())) throw Stream_IO_Error("BigInt input operator has failed"); n = BigInt(str); return stream; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -