[問題] Cstring.Format用法

看板C_and_CPP (C/C++)作者 (1+1≠2)時間14年前 (2012/05/09 23:56), 編輯推噓0(0013)
留言13則, 3人參與, 最新討論串1/1
小弟因為剛踏入C++的領域兩個月,有些語法不太了解 今天看了某支程式,其中有段是這樣... CString strNewFileName; strNewFileName.Format("%s_%02d", sourceFile.GetFileName(),nReaded); strNewFileName.Remove('.'); 以往看到的Format都是兩個參數Format(" ", ) 但是今天看到三個參數的,第二行的用意是? 第一個參數"%s_%02d"的意思是? 麻煩各位幫忙了,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.194.23

05/10 00:25, , 1F
看起來是sourceFile.GetFileName()_00nReaded %s(字串),%d
05/10 00:25, 1F

05/10 00:26, , 2F
整數
05/10 00:26, 2F

05/10 00:56, , 3F
後兩個參數叫做 Variable Argument Lists
05/10 00:56, 3F

05/10 00:57, , 4F
可以有 0~n 個參數
05/10 00:57, 4F

05/10 00:59, , 5F
Format 的原形宣告的參數裡面會有 ...
05/10 00:59, 5F

05/10 01:04, , 6F
第二行做的事情是把一個字串填入 strNewFileName 中
05/10 01:04, 6F

05/10 01:05, , 7F
字串的格式是 "%s_%02d"
05/10 01:05, 7F

05/10 01:06, , 8F
根據他的格式,他會額外需要兩個變數來完成字串
05/10 01:06, 8F

05/10 01:07, , 9F
sourceFile.GetFileName() 填入 %s 的位置
05/10 01:07, 9F

05/10 01:07, , 10F
nReaded 填入 %02d 的位置
05/10 01:07, 10F

05/10 01:12, , 11F
假設參數分別是 "filename", 1
05/10 01:12, 11F

05/10 01:12, , 12F
則會將 "filename_01" 填入字串
05/10 01:12, 12F

05/10 22:28, , 13F
感謝樓上兩位大大,我看懂了....
05/10 22:28, 13F
文章代碼(AID): #1FgfEk_D (C_and_CPP)
文章代碼(AID): #1FgfEk_D (C_and_CPP)