假設我們有一個C矩陣(二維數組)。如何將數字矩陣打印到C中的字符串中?
我不知道我怎麼能打印矩陣成C.字符串
舉例來說,如果我有
double M[2][2]={{1.2,3.4},{3.14,2.718}}
我想這樣的字符串:
"1.200 3.400\n3.140 2.718"
可以打印爲
1.200 3.400
3.140 2.718
如果打印到屏幕上,問題會變得更容易,因爲我們不需要考慮緩衝區大小。但是,當打印到字符串時,如果我想使用像'sprintf'這樣的函數,似乎很難知道字符串緩衝區應該多大。
我搜索谷歌和計算器,但幾乎我所得到的是關於如何字符串轉換爲數值都...
如何做到這在C?有沒有libs?
你能幫忙嗎?謝謝!
編輯: 'snprintf'解決方案適用於只有一個數字的情況。 但是對於矩陣,它應該使用循環遍歷每個元素。 然後爲每個循環中的字符串添加一點。這將工作與'snprintf'?
的「snprintf的」解決方案非常適用於只是一個數字的情況。 但是對於矩陣,它應該使用循環遍歷每個元素。 然後在每個循環的字符串中添加一點,這將與'snprintf'一起工作嗎? – Roun
你可能會做另外一件事:'char s [80]; sprintf(s,80,「%.2f」,f)'並且與累加器連接,你可以通過重新分配管理你的能力:'int n = strlen(s); if(accumLen + n> accumCap){realloca和copy} strcpy(accum,s); accum + = n; accumLen - = n;' – demi
'char * ftoa(float);' – Feo