2013-12-08 77 views
0

如何將連字符打印到ex,344-34-4333這樣的輸出中。如果從具有不帶連字符的數字的文件中讀取此ID,我如何才能打印xxx-xx-xxxx 3到2到4?打印連字符/破折號?

+2

這就是:'std :: cout <<「 - 」;' – 2013-12-08 22:01:38

+0

把334344333變成344-34-4333:http://www.cplusplus.com/reference/string/string/insert/ – nhgrif

回答

1

std::string類有很多構造函數來幫助你解決這些問題。成員函數substr()也很有用。

一個快速和骯髒的例子:

std::string x("344344333"); 
std::string res = x.substr(0, 3) + '-' + s.substr(3, 2) + '-' + x.substr(5,4); 

對於更復雜的字符串,你可能更願意使用std::ostringstream類。

+0

如果我有一個文件中的ID號碼列表,並且我從文件中讀取數據(包含爲344344333),我想打印344-34-4333。在文件中循環時,我需要如何做到這一點。我嘗試使用模數等,但似乎無法得到它。 – user3078999

+0

@ user3078999:當你處理字符時,不需要做複雜的數學運算,只需要字符串和偏移量。像'std :: ifstream f('data.txt'); std :: string x; while(std :: getline(f,x)){/ *轉換並在答案中寫入x * /}'。 – rodrigo