string有成员函数的,直接用>>的话要把它转成stream
你可以从string字符串得到C风格字符串,再用sscanf处理
或者用string构造个string流, 按cin使用
#include
#include
#include
using namespace std;
int main()
{
string s="654321";
int i=0;
sscanf(s.c_str(),"%d",&i);
cout< i=0;
istringstream ss(s);
ss>>i;
cout<}
用sprintf,sscanf
没有long和string互相转换的,但是有long(还有int,double,float等)和char*互相转化的函数,sprintf函数和sscanf函数。因此可以用char*作为中间类型
long转换为string的一个解决方案:
可以先用sprintf函数把long转换为char*,然后char*直接可以赋给string。
string转换为long的一个解决方案
先用string的成员函数c_str()转化为char*,再用sscanf函数将char*转为long。
sscanf和sprintf是C函数,头文件stdio.h,用法和scanf、printf相似