c - 如何转换字符数组中的浮点值
问题描述
如何将float
值复制到c中的字符数组?例如,float
变量x = 1.234
被复制到一个数组中char
成为{‘ 1’ , ‘.’ , ‘2’ , ‘3’ , ‘4’}
解决方案
更好地使用snprintf
over sprintf
,它解决了缓冲区溢出的许多风险,当开发人员低估了所需的大小,或者输入没有完全验证时。
int status = snprintf(arr, sizeof(arr), "%.3f", val) ;
... Check overflow if needed ...
if ( status >= sizeof(arr) ) {
.. Overflow
}
printf 与原始 stdio 中的少数其他函数(gets、vsprintf)一样,依赖于程序员创建足够大的缓冲区。
推荐阅读
- database - 如何处理 IoTDB 数据库中的“无法从 [[...]] 获取下一个文件夹,因为它们都已满”错误
- json - 使用 JSON 列 postgresql 中的值连接表
- angular - 在 Angular9 中运行 .spec.ts 文件时出现“目标文件”错误
- github-actions - 在当前存储库中找不到任何在线和空闲的自托管运行器
- android - 有没有办法根据查看寻呼机内容图像将android状态栏更改为透明?
- python - 我正在尝试使用 BS4 实现自动化,但我的编辑器没有给我输出。为什么?
- bluetooth - 在ubuntu 20.04上连接后蓝牙断开连接
- python - 如何为具有至少 3 个数字和 2 个小数或更多小数的数字创建正则表达式?
- javascript - 存储在单个数组中的从 1 到 10 的所有数字的 Collatz 序列
- r - 尝试从数据框中删除所有非数字列