【发布时间】:2016-02-29 23:43:27
【问题描述】:
我目前正在创建一个加密/解密应用程序作为练习,为此我一直在尝试使用 snprintf 将整数转换为 char 数组,但是,例如,如果我有一个 4 位数的整数,它只会添加前 3. 到目前为止,这是我的代码:
int encrypt(int num, bool type)
{
char buffer[sizeof(num)];
snprintf(buffer, sizeof(buffer), "%d", num);
printf(buffer);
return 0;
}
任何帮助都会很棒!
【问题讨论】:
-
char buffer[snprintf(NULL, 0, "%d", num)+1]; -
请阅读
sizeof运算符的作用。 -
snprintf 只会将 sizeof(buffer)-1 个字符写入缓冲区,因为它需要为空终止符留出空间。