有什麼辦法可以縮短下面這段代碼嗎?也許有一種方法只能使用一個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