我嘗試將unsigned long
轉換爲字符串,並在其末尾附加一個逗號。當編譯並運行測試代碼,您可以在下面找到,我得到下面的輸出:無符號long的snprintf附加逗號
"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代表逗號。
我錯過了一個額外的加終止字符嗎?
乾杯!
編譯我得到:'錯誤:「to_string」不是「std'' – ezdazuzena 2012-02-03 10:07:12
@ezdazuzena成員:這需要一個現代化的編譯器(用C++ 11的支持)。在GCC中,例如'-std = C++ 0x';就我所知,MSVC10支持這一點。 – 2012-02-03 10:09:03
感謝您的提示。我標記的另一個答案是正確的,因爲這個問題是相對於snprintf的。任何,謝謝你的教訓! – ezdazuzena 2012-02-03 10:18:21