void指针的内容怎么写?
How to write the content of a void pointer?
如何 cout
一点一点地 void
存储在 cpp 中的指针中的位?
void * r = malloc(k*8);
size_t count;
//Print string under byte form with bytes separated by space
cout << mpz_export (r, &count, 1, sizeof(char), 1, 0, cypher.get_mpz_t());
这个cout
只写地址。
我想你正在找这个
Function: size_t mpz_out_str (FILE *stream, int base, const mpz_t op)
stdio 流流上的输出操作,作为 base base 中的一串数字。 base 参数可以从 2 到 62 或从 -2 到 -36.For base 在 2..36 范围内变化,使用数字和小写字母;对于 -2..-36,使用数字和大写字母;对于 37..62,使用数字、大写字母和小写字母(按重要性顺序)。 Return 写入的字节数,或者如果发生错误,return 0
可以在此处找到更多信息:https://gmplib.org/manual/I_002fO-of-Integers.html
像这样
char* ptr = (char*)mpz_export(r, &count, 1, sizeof(char), 1, 0, cypher.get_mpz_t());
for (int i = 0; i < count; ++i)
cout << (unsigned)(unsigned char)ptr[i] << ' ';
cout << '\n';
由于您的数据是 char
数据,您必须将 void
指针转换为 char
指针。然后将输出视为无符号整数(我认为这是你想要的)然后你必须将每个 char
转换为 unsigned char
,然后是 unsigned
。
如果你想要十六进制输出,那么只需添加通常的格式化代码。
如何 cout
一点一点地 void
存储在 cpp 中的指针中的位?
void * r = malloc(k*8);
size_t count;
//Print string under byte form with bytes separated by space
cout << mpz_export (r, &count, 1, sizeof(char), 1, 0, cypher.get_mpz_t());
这个cout
只写地址。
我想你正在找这个
Function: size_t mpz_out_str (FILE *stream, int base, const mpz_t op)
stdio 流流上的输出操作,作为 base base 中的一串数字。 base 参数可以从 2 到 62 或从 -2 到 -36.For base 在 2..36 范围内变化,使用数字和小写字母;对于 -2..-36,使用数字和大写字母;对于 37..62,使用数字、大写字母和小写字母(按重要性顺序)。 Return 写入的字节数,或者如果发生错误,return 0
可以在此处找到更多信息:https://gmplib.org/manual/I_002fO-of-Integers.html
像这样
char* ptr = (char*)mpz_export(r, &count, 1, sizeof(char), 1, 0, cypher.get_mpz_t());
for (int i = 0; i < count; ++i)
cout << (unsigned)(unsigned char)ptr[i] << ' ';
cout << '\n';
由于您的数据是 char
数据,您必须将 void
指针转换为 char
指针。然后将输出视为无符号整数(我认为这是你想要的)然后你必须将每个 char
转换为 unsigned char
,然后是 unsigned
。
如果你想要十六进制输出,那么只需添加通常的格式化代码。