2014-01-06 127 views
0

我在我的c應用程序中使用gtk,並希望在窗口中顯示一個double作爲標籤。將字符串double翻譯爲字符串 - 將字符串double連接到字符串

double d = 1000.50 

label = gtk_label_new (d); 

我得到一個編譯錯誤,因爲該函數將字符串作爲參數。

我習慣了Java,它很容易用一個字符串連接一個原語。它也很容易將字符串轉換爲雙精度字符串。我已經搜索了一個解決方案,但我只能在C++中找到示例。

所以 - 一個類型轉換如何將一個double轉換爲字符串或將一個double轉換爲一個字符串?

謝謝!

+0

使用sprintf或snprintf生成一個字符串。隨着GLib的,你還可以使用內置的巧舌如簧版本:http://www.gtk.org/api/2.6/glib/glib-String-Utility-Functions.html#g-strdup-printf – Brandin

回答

2

snprintf可以用來做到這一點。您可以撥打snprintf用NULL指針,以評估它的大小將需要緩衝,這樣你就可以分配足夠的結果字符串將適合。

double d = 1000.50 
int len = snprintf(NULL, 0, "%f", d); 
char *str = malloc(len+1); 
snprintf(str, len, "%f", d); 
label = gtk_label_new (str); 
+0

它的工作原理謝謝! !可以在4分鐘內接受:-) ...但我想我應該在我完成時免費* str? – user3155478

+0

我不知道,如果GTK會免費做的,或者它是如何預計指針。如果指針被複制到內存中,則必須釋放它。無論如何,你應該參考gtk文檔。 – Devolus