如何使用(put)sprintf到char指针? C

时间:2013-12-28 12:43:08

标签: c pointers printf

是否可以将sprintf输出放入(或复制)到指针?怎么样?

喜欢这个吗?

double myNumber = 88.123;
char *pointer;

sprintf(pointer, myNumber);

3 个答案:

答案 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的手册页。您缺少格式参数