数据转换?

C、C++和Java语言
头像
yunch
帖子: 83
注册时间: 2007-07-02 20:21
送出感谢: 0
接收感谢: 0

数据转换?

#1

帖子 yunch » 2007-08-17 20:56

double 类型数据怎样转换为字符串类型?
郁闷呢!
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

#2

帖子 BigSnake.NET » 2007-08-17 20:57

sprintf
上次由 BigSnake.NET 在 2007-08-17 20:59,总共编辑 1 次。
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
nihui
帖子: 1746
注册时间: 2006-10-21 12:03
来自: Shanghai
送出感谢: 0
接收感谢: 0
联系:

#3

帖子 nihui » 2007-08-17 20:58

直接转换哦~ :wink:

QString 就可以的 :)
.

私人空间
附有 Magic Linux 2.1 最新开发日志~


미안하다, 사랑한다


欢迎来 #xfce-cn 中文频道~~
wkt
帖子: 849
注册时间: 2006-09-07 22:51
送出感谢: 0
接收感谢: 0
联系:

Re: 数据转换?

#4

帖子 wkt » 2007-08-17 21:01

yunch 写了:double 类型数据怎样转换为字符串类型?
郁闷呢!
怎么这个也问啊!
char *gcvt(double number,size_t ndigits,char *buf);
gcvt()用来将参数number转换成ASCII码字符串,参数ndigits表示显示的位数。gcvt()与ecvt()和fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号。若转换成功,转换后的字符串会放在参数buf指针所指的空间。
头像
yunch
帖子: 83
注册时间: 2007-07-02 20:21
送出感谢: 0
接收感谢: 0

#5

帖子 yunch » 2007-08-18 17:26

刚接触C++哦
就是一个笨哪!
gcvt()是包含在哪个库中?
头像
yunch
帖子: 83
注册时间: 2007-07-02 20:21
送出感谢: 0
接收感谢: 0

#6

帖子 yunch » 2007-08-18 18:56

gcvt()还挺好使
谢谢 wkt 大侠详细的帮助!1
头像
yunch
帖子: 83
注册时间: 2007-07-02 20:21
送出感谢: 0
接收感谢: 0

程序运行问题

#7

帖子 yunch » 2007-08-18 19:51

程序毛病

#include<iostream>
#include<string>
using namespace std;

int main()
{
char * str;
double t=8.978956;
gcvt(t,5,str);
cout<<"str="<<str<< endl;

double tt=5.14256;
char *u_file_name;

const char * dx="s_u.dx";
gcvt(tt,10,u_file_name) ;
strcat(u_file_name,dx);


cout<<"u_file_name="<<u_file_name<<endl;
return 0;
}


这段程序在终端 g++ -o str str.cpp 编译时能通过
但是运行时却报出以下错误:

段错误 (core dumped)

我用的是Emacs
不知在你们的机器上运行时是怎样的结果?
malganiss
帖子: 19
注册时间: 2007-03-17 1:18
送出感谢: 0
接收感谢: 0

#8

帖子 malganiss » 2007-08-22 10:12

是不是和你那个const有关系 :?
wkt
帖子: 849
注册时间: 2006-09-07 22:51
送出感谢: 0
接收感谢: 0
联系:

Re: 程序运行问题

#9

帖子 wkt » 2007-08-22 14:00

yunch 写了:程序毛病

#include<iostream>
#include<string>
using namespace std;

int main()
{
char * str;
double t=8.978956;
gcvt(t,5,str);
cout<<"str="<<str<< endl;

double tt=5.14256;
char *u_file_name;

const char * dx="s_u.dx";
gcvt(tt,10,u_file_name) ;
strcat(u_file_name,dx);


cout<<"u_file_name="<<u_file_name<<endl;
return 0;
}


这段程序在终端 g++ -o str str.cpp 编译时能通过
但是运行时却报出以下错误:

段错误 (core dumped)

我用的是Emacs
不知在你们的机器上运行时是怎样的结果?
char *str;
str指向何方?
应该
char str[length]={};
or
加上
str=(char*)malloc(length);
这样str指向的地址更合法一点
同理对于u_file_name
指针要指向一个合法的地址
既要要赋初值
头像
yunch
帖子: 83
注册时间: 2007-07-02 20:21
送出感谢: 0
接收感谢: 0

#10

帖子 yunch » 2007-08-26 22:24

谢谢!问题解决
是未分配内存空间造成的。
头像
boydd
帖子: 255
注册时间: 2007-05-10 19:42
来自: 南京, Deutschland, Karlsruhe
送出感谢: 0
接收感谢: 0
联系:

#11

帖子 boydd » 2007-08-26 23:22

既然都已经用c++了,还是不要用char*了,用string吧,而且关于数字字符转换用sprintf
而且如果需要用char的时候,string.c_str()就可以返回字符串的首地址
http://www.cplusplus.com/
这个网站常去去

ps: 用emacs编程,前途很光明:)
wkt
帖子: 849
注册时间: 2006-09-07 22:51
送出感谢: 0
接收感谢: 0
联系:

#12

帖子 wkt » 2007-08-28 13:28

boydd 写了:既然都已经用c++了,还是不要用char*了,用string吧,而且关于数字字符转换用sprintf
而且如果需要用char的时候,string.c_str()就可以返回字符串的首地址
http://www.cplusplus.com/
这个网站常去去

ps: 用emacs编程,前途很光明:)
c++ 又不是不支持char
flyinflash
帖子: 2376
注册时间: 2006-09-21 14:28
送出感谢: 0
接收感谢: 0

#13

帖子 flyinflash » 2007-08-28 13:54

买本,英文C++r的书籍看,千万不要中文的,或者中国人写的。

找xhy问问,有什么好书。
wkt
帖子: 849
注册时间: 2006-09-07 22:51
送出感谢: 0
接收感谢: 0
联系:

#14

帖子 wkt » 2007-08-28 19:03

flyinflash 写了:买本,英文C++r的书籍看,千万不要中文的,或者中国人写的。

找xhy问问,有什么好书。
你要我看吗?
我没想过要c++
知道一点就好了!
头像
yunch
帖子: 83
注册时间: 2007-07-02 20:21
送出感谢: 0
接收感谢: 0

#15

帖子 yunch » 2007-08-28 21:13

wkt 写了:
boydd 写了:既然都已经用c++了,还是不要用char*了,用string吧,而且关于数字字符转换用sprintf
而且如果需要用char的时候,string.c_str()就可以返回字符串的首地址


ps: 用emacs编程,前途很光明:)
c++ 又不是不支持char
呵呵
谢谢
还不知道有这个东东
回复

回到 “C/C++/Java”