简体   繁体   English

PBC element_to_bytes错误“打印垃圾”无法将元素转换为字符串

[英]PBC element_to_bytes error “prints garbage” Unable to convert element to string

I am getting garbage values when I convert an element_t to string. 将element_t转换为字符串时,出现垃圾值。 What could be the reason? 可能是什么原因?

element_printf("element_a: %B",a);

//int len = element_length_in_bytes(a);
unsigned char* strA= (unsigned char*)malloc(element_length_in_bytes(a)*sizeof(char));
element_to_bytes(strA,a);
printf("\n\n\n a: %s\n\n\n",strA);

The output is: 输出为:

element_a: 676879270129030191324293305775237511254264666883


 a: v�P��?�P�+��a�����[

I want the normal a to print as the element_a. 我希望普通a打印为element_a。 What am I missing? 我想念什么?

Thanks, Yogesh 谢谢,Yogesh

You are not getting garbage and you are not converting your element to a string. 您不会收到垃圾,也不会将元素转换为字符串。 You are passing an array of bytes to printf and tell this function to interpret them as characters. 您正在将字节数组传递给printf,并告诉该函数将其解释为字符。 No surprise this does not work. 毫不奇怪,这行不通。 Try element_snprint() 试试element_snprint()

element_printf("element_a: %B",a);

size_t s = (size_t) element_length_in_bytes(a);
char* strA= (char*)malloc(s*sizeof(char));
element_snprint(strA, s, a)
printf("\n\n\n a: %s\n\n\n",strA);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM