【发布时间】:2012-02-03 09:47:48
【问题描述】:
我尝试将unsigned long 转换为字符串,并在其末尾附加一个逗号。编译并运行您可以在下面找到的测试代码时,我得到以下输出:
"1234," "1234"
"1234"
测试代码为:
#include <cstdio>
#include <iostream>
int main () {
unsigned long c = 1234;
char ch[50];
char ch1[50];
sprintf(ch, "%lu,", c);
std::cout << "\"" << ch << "\"" << " \"" << c << "\"" << std::endl;
snprintf(ch1, 5, "%s", ch);
std::cout << "\"" << ch1 << "\"" << std::endl;
return 1;
}
据我了解,ch 的长度应为 5,4 位数字加 1 的逗号。
我是否错过了终止字符的额外加一?
干杯!
【问题讨论】: