首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

socket网络编程有关问题

2013-01-08 
【求助】socket网络编程问题什么函数可以让FLOAT实型数据和CHAR字符型相互转换,就是在客户端用FLOAT转换到CH

【求助】socket网络编程问题
什么函数可以让FLOAT实型数据和CHAR字符型相互转换,就是在客户端用FLOAT转换到CHAR ,然后用SOCKET发送字符串过去,在服务器端再从CHAR型变回FLOAT型且不损失精度。还有就是用考虑小端、大端字节顺序吗?如何考虑。谢谢各位高手了!!
[解决办法]
用memcpy赋值,统一发送的数据是大端还是小端,然后在接收端判断大小端再转换
[解决办法]
整数化成字符串
 给定一个整数(有可能是负数),将整数变成字符串。函数已经声明好类似void change(int number, char s[])的形式。可以自己写用例测试。
给出代码给你参考:

#include <stdio.h>
#include <string.h>

void change(int number, char s[])
{
int m;
int i;
char tmp[50];
if(number>0)
{
m=0;
while(number>0)
{
tmp[m]=number%10+'0';
number=number/10;
m++;
}
tmp[m]='\0';
for(i=0;i<m;i++)
{
s[m-1-i]=tmp[i];
}
s[m]='\0';
}
else if(number<0)
{
number=-number;
m=0;
while(number>0)
{
tmp[m]=number%10+'0';
number=number/10;
m++;
}
tmp[m]='\0';
for(i=0;i<m;i++)
{
s[m-i]=tmp[i];
}
s[0]='-';
s[m+1]='\0';
}
else
{
s[0]='0';
s[1]='\0';
}

}
int main(/*int argc, char **argv*/)
{
int number=-7782347;
char s[50]={0};
change(number,s);
printf("%s\n ",s);

system("pause");
return 0;
}


[解决办法]
float占四字节(32位机器上),你分配一个char[4]就可以拷贝了,大小端要看你与对端的约定了
[解决办法]
哪有那么麻烦的,实数和字符串可以相互转换的:
一、实数转字符串:

double num = 3.1416;
char str[32];
snprintf(str, 32, "%f", num);

二、字符串实数:

char *str = "3.1416";
double num;
num = atof(str);

热点排行