我編程上的LPC 1769微處理器,但我無法弄清楚如何將浮點數轉換爲字符串,這樣我可以打印在我的顯示。我正在使用sprintf
命令,但我的程序仍顯示內存錯誤。如何將float
轉換爲字符串?我需要在不使用標準庫的情況下執行此操作。浮到字符串轉換在C++
回答
該代碼會爲你做的:
#include <iostream>
#include <sstream>
#include <string>
int main()
{
float val =3.456;
std::stringstream stream;
stream << val;
std::string test = stream.str();
std::cout << test << std::endl;
}
測試將包含從val
浮動爲3.456。
什麼它看起來像你要做的是使用sprintf
,在這種情況下,你可以這樣做:
char buffer[40]
float val =3.456;
sprintf(buffer, "%f", val);
std::string out(buffer);
std::cout << out << std::endl;
希望有所幫助。
請注意混合C I/O和C++ I/O方法可能會有問題。請參閱'std :: ios :: width'和'std :: ios :: precision'來使用C++ I/O操縱器進行格式化。 –
@ThomasMatthews謝謝你的建議,我想我是單獨提供一個C方法和C++的方法,但你是正確的,我輸出到std ::法院用C++方法。 –
這也將工作:
#include <stdio.h>
#define MAXIMUM_TEXT_SIZE 64U
float value = 3.14159f;
char text_array[MAXIMUM_TEXT_SIZE];
snprintf(text_array, MAXIMUM_TEXT_SIZE, "%4.2f", value);
浮點值的字符串形式將在text_array
。
與之前內存受限的嵌入式系統上使用std::string
,請確認你有一個體面的內存分配和垃圾回收設置。如果不是,則使用分配器作爲從固定大小內存池分配的字符串。搜索所以「碎片」。
請,你似乎已經足夠長時間知道關於一個體面的答案的事情。代碼僅是壞的,解釋。(是的,即使如此短的人爲什麼如你選擇64數組大小,爲什麼你使用'%4.2f'。?) – stefan
@stefan:該任擇議定書沒有給出任何格式要求浮點,只是它被輸出。這是嵌入式系統中的一種標準方法,我已經編程了40多年。文本數組爲64,因爲這是一個很好的2(用於對齊目的),也因爲OP沒有給出字符串的長度。另外,我使用'snprintf',因爲它比'sprintf'安全。你知道C代碼也可以在C++下編譯嗎?是什麼讓這個不好的答案? –
@stefan:「%4.2f」是一個*格式說明符*,表示在4個字符寬度(包括小數點)的字段中打印浮點數值,其中包含2位數字的精度。文本應該出來「3.14」。 –
在C++ 11中,您可以使用std::to_string將數值轉換爲std::string
,您可以使用c_str()
方法將其轉換爲C風格的字符串。
實際上我想要一個不包含任何標準庫的代碼。函數或任何其他庫。包括 – user1799316
- 1. C#字符串到浮點型轉換
- 2. c#字符串浮動轉換無效?
- 3. C字符串浮點轉換
- 4. C++字符串到字符串轉換
- 5. 字符串浮動轉換?
- 6. 基本字符串到浮點轉換
- 7. 字符串到浮點數轉換
- 8. 轉換貨幣字符串到浮在Objective-C
- 9. C++字符串到字符轉換
- 10. 在C#字符串轉換到類名
- 11. 轉換字符串 「\ u0026」 到 「&」 在C++
- 12. C將字符串/字符輸入轉換爲浮點數
- 13. 轉到:將字符串轉換使用strconv.ParseFloat返回到浮0
- 14. 轉換系統:字符串^(C#字符串)到C++的std :: string
- 15. 無法將字符串轉換爲在asp.net中浮動c#
- 16. 如何將字符串轉換爲浮動在C#
- 17. 如何將字符串轉換爲浮點數在objective-c
- 18. 將字符串轉換爲浮動在C++
- 19. 字符串浮動vs雙重轉換
- 20. 轉換「字符串」爲「浮動」?
- 21. 不能字符串轉換爲浮動
- 22. 字符串轉換爲浮動動態
- 23. 將字符串轉換爲浮點數
- 24. 將字符串轉換爲浮點數
- 25. 將字符串轉換爲浮點數?
- 26. 將字符串轉換爲浮動logstash
- 27. 將字符串轉換爲浮點Java
- 28. 迅速字符串轉換爲浮動
- 29. 將字符串轉換爲浮點數
- 30. VBS將字符串轉換爲浮點
什麼是「Sprint命令」? –
*「請提供我,轉換成浮動一串代碼。」 *,你需要閱讀這一點:http://mattgemmell.com/2008/12/08/what-have-you-tried/ –
@JohnnyGraber ?老實說,他可能處理不當嘗試新鮮事物,但他說的衝刺命令,也許他指的sprintf,這意味着他正在努力做到這一點:'sprintf的(charstar,「%F」的floatValue)' –