2016-08-14 67 views
1

我正在解碼由佔位符分隔的cpu操作碼和它們的參數。sprintf() - 左對齊一個佔位符內的幾個單位

這與一個左側單元的工作原理完全通過提供myop a0

sprintf(dest, "%-16s%s", opcode, arg); 

但是,當我有包括幾個單位這樣myop.w.s a0操作碼,其中前3個單位需要在留下佔位符的一面,和之後的ARG去,是什麼讓他們表現得像這裏

sprintf(dest, "%s.%s.%s\t\t%s", opcode, param1, param2, arg); 

但沒有路使用標籤?

還有一個辦法做到sprintf()兩次,起初我第二sprintf()我墊它在創建組合的字符串"myop.w.s"然後,但我如果有其他的解決方案好奇。

+0

是啊,我不相信有任何辦法做到這一點所有'sprintf'一個電話裏面 - 你需要的一些變種你的建議解決方案 –

+1

嘗試'sprintf(dest,「%s。%s。%s%16s」,opcode,param1,param2,arg)''。 –

+0

@barakmanos不會忽略前3個的大小,不管添加16個空格嗎? – feos

回答

2

打印第3串和間距根據需要

snprintf(dest, 16, "%s.%s.%s%16s", opcode, param1, param2, ""); 
strcpy(dest + 16, arg); 
+0

Upvote for C-juggling – feos

相關問題