是否可以将sprintf输出放入(或复制)到指针?怎么样?
喜欢这个吗?
double myNumber = 88.123;
char *pointer;
sprintf(pointer, myNumber);
答案 0 :(得分:2)
如果您阅读manual for sprintf,您会发现它的参数是:
int sprintf(char *str, const char *format, ...);
其中str
是一个指针,其中包含您希望保存输出的地址,其余参数与printf相同。
在您的情况下,您需要:
double myNumber = 88.123;
char *pointer = hopefully_something_with_enough_space;
sprintf(pointer, "%f", myNumber);
答案 1 :(得分:1)
sprintf
打印到字符缓冲区。您可以使用malloc动态分配内存并在pointer
中存储指向该内存的指针。之后,就像使用静态字符数组一样使用sprintf
。
答案 2 :(得分:0)
您需要为pointer
分配一些内存。另请阅读sprintf
的手册页。您缺少格式参数