EOS合约开发第十二章-合约输出

EOS合约在节点上运行,客户端调用触发合约执行并产生输出作为响应。合约使用C和C++打印函数进行输出,包括字符串、整数、浮点数等类型。eos还提供了iostream风格的打印输出方式。
摘要由CSDN通过智能技术生成

合约输出

合约部署运行在eos节点上,合约的调用是由客户端发起的,合约的调用请求将触发eos节点上部署的合约运行且产生输出,合约的输出作为该请求的应答并返回给合约调用客户端。

在hello world合约程序中,我们在客户端调用了合约,合约调用请求在eos节点执行且打印输出作为请求的应答返回给合约调用客户端。

eos标准库C打印函数:

1. 指定字符串及长度

void prints_l( const char* cstr, uint32_t len);

2. 指定字符串

void prints( const char* cstr );

3. 打印整数

void printi( int64_t value );

void printui( uint64_t value );

4. 打印16字节整数

void printi128( const int128_t* value );

void printui128( const uint128_t* value );

5. 打印整数描述的base32编码字符串

void printn( uint64_t name );

6. 单精度浮点数

void printsf(float value);

7. 双精度浮点数

void printdf(double value);

8. 四精度浮点数

void printqf(const long double* value);

eos标准库C++打印函数是对C打印函数的封装,API如下:

void print( const char* ptr );

void print( int num );

void print( int32_t num );

void print( int64_t num );

void print( unsigned int num );

void print( uint32_t num );

void print( uint64_t num );

void print( int128_t num );

void print( uint128_t num );

void print( float num );

void print( double num );

void print( long double num );

void print( name name );

void print( bool val );

void print_f( const char* s );

如果自定义的数据类型实现了print方法,也可以直接调用print函数进行对象的打印输出。

变长参数的打印函数:

void print(......);

例如:

const char *s = "Hello World!";
uint64_t unsigned_64_bit_int = 1e+18;
uint128_t unsigned_128_bit_int (87654323456);
uint64_t string_as_unsigned_64_bit = N(abcde);
print(s , unsigned_64_bit_int, unsigned_128_bit_int, string_as_unsigned_64_bit);
// Ouput: Hello World!100000000000000000087654323456abcde

C++风格的打印方法:

eos也模拟实现了一个简单的iostream从而实现C++风格的打印输出。

const char *s = "Hello World!";
uint64_t unsigned_64_bit_int = 1e+18;
uint128_t unsigned_128_bit_int (87654323456);
uint64_t string_as_unsigned_64_bit = N(abcde);
eosio::cout << s << " " << unsigned_64_bit_int << " "  << unsigned_128_bit_int << " " << string_as_unsigned_64_bit;
// Output: Hello World! 1000000000000000000 87654323456 abcde

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值