有什么办法可以缩短下面这段代码吗?也许有一种方法只能使用一个sprintf
命令,但我不知道如何。当其值为零时,我需要避免打印x
。如何在其值为零时不打印整数?
char msg[1000];
string s1 = "s1";
string s2 = "s2";
string s3 = "s3";
int x = 0;
if(x == 0)
sprintf(msg, "%s,%s,%s \n", s1.c_str(), s2.c_str(), s3.c_str());
else
sprintf(msg, "%s,%s,%s,%d \n", s1.c_str(), s2.c_str(), s3.c_str(), x);
由于解决方案的性能对我来说也很重要,你知道如果使用'stringstream'比'sprintf'少或者更有效吗? – Meysam
表现总是很重要。问题是,它是最重要的*吗?我现在不知道答案,现在也不会担心。以清晰,简明的方式编写代码,然后进行优化。不成熟的优化是万恶之源。 –
感谢您的努力和优雅的解决方案! – Meysam