c语言中gcvt函数 c语言中getc函数的用法

c语言里 怎样将单精度浮点型数转换成字符型#include stdio.h
#include stdlib.h
int main() {
float fa = 3.68f;
char fstr[20];
// 最简易的方法
sprintf(fstr,"%f",fa);
printf("%s\n",fstr);
// 用专用函数转换
gcvt(fa,8,fstr);
printf("%s\n",fstr);
return 0;
}
C语言float转换二进制 gcvt(double,2,char*)为什么不可以?gcvt(double,2,char*)
函数实际上是用 sprintf()用 %g 格式 把 float转换成 字符串,不是 转换二进制 。
第2 个参数 用于 %g 格式 处理成 %f 时 作 有效数字位数 要求 。
除非是自己编写的 gcvt(double,2,char*)
float 的 二进制 内存 状态 , 可以 用 联合体:
union u {
float x;
char s[4];
} U;
float x=123.4567;
U.x = x;
printf("%02x %02x %02x %02x\n", U.s[3], U.s[2], U.s[1],U.s[0]);打印出来看 。
--------
C语言库函数有将数字转字符串的函数吗1、itoa
功 能:把一整数转换为字符串
用 法:char *itoa(int value, char *string, int radix);
详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)c语言中gcvt函数的缩写.
参数:
value: 待转化c语言中gcvt函数的整数 。
radix: 是基数的意思,即先将value转化为radix进制的数c语言中gcvt函数,范围介于2-36,比如10表示10进制 , 16表示16进制 。
* string: 保存转换后得到的字符串 。
返回值:
char * : 指向生成的字符串,同*string 。
备注:该函数的头文件是"stdlib.h"
2、ltoa
功 能:把一长整形转换为字符串
用 法:char *ltoa(long value, char *string, int radix);
详细解释:itoa是英文long integer to array(将long int长整型数转化为一个字符串,并将值保存在数组string中)的缩写.
参数:
value: 待转化的长整型数 。
radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制 。
* string: 保存转换后得到的字符串 。
返回值:
char * : 指向生成的字符串,同*string 。
备注:该函数的头文件是"stdlib.h"
3、ultoa
功 能:把一无符号长整形转换为字符串
用 法:char *ultoa(unsigned long value, char *string, int radix);
详细解释:itoa是英文unsigned long integer to array(将unsigned long int无符号长整型数转化为一个字符串,并将值保存在数组string中)的缩写.
参数:
value: 待转化的无符号长整型数 。
radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制 。
* string: 保存转换后得到的字符串 。
返回值:
char * : 指向生成的字符串,同*string 。
备注:该函数的头文件是"stdlib.h"
4、gcvt
功 能:把浮点型数转换为字符串,取四舍五入
用 法:char *gcvt(double value, int ndigit, char *buf);
详细解释:gcvt()用来将参数number转换成ASCII码字符串 , 参数ndigits表示显示的位数 。gcvt()与ecvt()和fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号 。若转换成功,转换后的字符串会放在参数buf指针所指的空间 。
参 数:
value:待转化的浮点数 。
ndigit:存储的有效数字位数 。
*buf:结果的存储位置 。
返回值:
char * :指向生成的字符串,同*buf 。
备注:该函数的头文件是"stdlib.h"
5、ecvt
功 能:将双精度浮点型数转换为字符串,转换结果中不包括十进制小数点
用 法:char *ecvt(double value, int ndigit, int *decpt, int *sign);
详细解释:ecvt函数把一个双精度浮点数转换成一个字符串 。value参数是要转换的浮点数 。这个函数存储最多ndigit个数字值作为一个字符串,并添加一个空数字符('\0'),如果value中的数字个数超过ndigit,低位数字被舍入 。如果少于ndigit个数字,该字符串用0填充 。

推荐阅读