#include <bits/stdc++.h>
using namespace std;
//应用:
//--------------数字转字符串,使用sprintf(char数组名,类型,数字变量名)
//--------------字符串转数字,使用sscanf(char数组名,类型,&数字变量名)
void Cfun(){
int num1 = 123;
char s1[10];
sprintf(s1,"%d",num1);
printf("%s\n",s1);
char s2[]="456";
int num2;
sscanf(s2,"%d",&num2);
printf("%d\n",num2);
/**
//十进制整数转十六进制字符串
char str2[10];
int c=175;
sprintf(str2,"%x",c);
//十六进制字符串转十进制整数
char str5[]="AF";
int f;
sscanf(str5,"%x",&f);
*/
}
//#include <sstream>
/**
三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。
*string到int的转换
string result=”10000”;
int n=0;
stream<<result;
stream>>n;//n等于10000
*多次转换中使用同一个stringstream对象,记住再每次转换前要使用clear()方法;
*/
//任意数值转化成字符串
template<class T>
void to_string(string &result,const T& t){
ostringstream oss;//创建一个流
oss<<t;//把值传递如流中
result=oss.str();//获取转换后的字符转并将其写入result
}
//任意类型转化
template<class out_type,class in_value>//将in_value值转换成out_type类型
out_type convert(const in_value & t){
stringstream stream;
stream<<t;//向流中传值
out_type result;//这里存储转换结果
stream>>result;//向result中写入值
return result;
/**
这样使用convert():
double d;
string salary;
string s=”12.56”;
d=convert<double>(s);//d等于12.56
salary=convert<string>(9000.0);//salary等于”9000”
*/
}
void CPPfun(){
//常用转化
stringstream stream;//创建stringstream对象
string result;
int i = 1000;
stream << i; //将int输入流
stream >> result; //从stream中抽取前面插入的int值
cout<< result <<endl; // print the string "1000"
stream.clear(); //在进行多次转换前,必须清除stream
}
int main(){
Cfun();
CPPfun();
}