请问C语言中 如何把double类型的数转化为字符串 char
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问C语言中 如何把double类型的数转化为字符串 char相关的知识,希望对你有一定的参考价值。
参考技术A 使用_gcvt函数,头文件stdlib.h比如:
char r[10]='\0';
_gcvt(3.1415,10,r);本回答被提问者采纳 参考技术B 用指针,强制类型转换。注意double在内存中的存放顺序。 参考技术C double a=125869898989898.3659874;
char b[50];
printf("%g",a);
sprintf(b,"%lf",a);
printf("%s",b);
c语言double类型输出问题及字符输入问题
#include<stdio.h>
void main()
double x;
char str[10],ch;
/*以下为输入一个double类型的数*/
scanf("%f",&x);
printf("%f\n",x);
/*问题1:以上结果为什么输出了一个随机数??*/
/*以下为输入一个字符串*/
scanf("%s",str);
/*以下为输入一单个字符*/
/*问题2:为什么没有相应的输入中断???*/
scanf("%c",&ch);
printf("%c\n",ch);
/*问题3:以上输出结果为什么单个字符没有被赋值???*/
printf("%s\n",str);
问题在以上程序注释中
编译环境是VC++6.0
你输入字符串时,肯定按了回车,而回车实际上输入了2个字符,第1个被用来确认scanf结束,还有一个仍然保留在了缓冲区内,被scanf("%c",&ch);读到了,这个字符是个控制字符,所以不可见.
在任何读取字符的语句之前,你最好用fflush(stdin);来清空一下缓冲区. 参考技术A #include<stdio.h>
void main()
double x;
char str[10],ch;
/*以下为输入一个double类型的数*/
scanf("%lf",&x);
printf("%lf\n",x);
/*%f改成%lf OK*/
/*以下为输入一个字符串*/
scanf("%s",str);
/*以下为输入一单个字符*/
/*scanf遇到空格或者回车自动结束*/
getchar();/*加一个用来存储回车键就OK或者fflush(stdin); 也可以*/
scanf("%c",&ch);
/*因为回车键也是一个字符。所以你在输完字符的时候回车的时候。他会把他当成字符存储到ch。你看一下你的是两行空格加两行\n是四行空格。*/
printf("%c\n",ch);
/*问题3:以上输出结果为什么单个字符没有被赋值???*/
printf("%s\n",str);
不懂可以hi我
以上是关于请问C语言中 如何把double类型的数转化为字符串 char的主要内容,如果未能解决你的问题,请参考以下文章