C++不像Java和C#一样在进行数据类型转换时直接调用一些类方法就可以了,使用起来很简单。
一个很简单的例子就是string str=“D:\\”+1+“.txt”;这在Java或者C#里面是可以自动拆箱和包
箱就可以了,但是在C++里面是不可以的。当然这只有一个文件还好,但是当我们要使用for循环去遍
厉一个文件夹下的1,2,3...命名的文件时或许就有点麻烦了。由于我自己碰到过这种情况,所以这里写
写几种方法。或许不是最好的方法,但是权当练练笔了,如果你发现错误或者有更好的方法欢迎指教。
方法一:这个方法比较笨就是自己写个函数如string getString(int value){},实现很简单就不写了。
通过一个个判断然后进行字符连接,最后把字符返回即可。类似的int getInt(string str){},可以把string
换为int。
方法二:就是使用一些C++的文件流或者C的函数:
如下:
class="precsshui">/* C++ String 和int的相互转换 */ #include<iostream> #include<sstream> using namespace std; int main(){ /* 使用C标准库里面的atoi */ //string to int string str="123"; int value=std::atoi(str.c_str()); cout<<"string to int value:"<<value<<endl; /* C++标准库里面,使用stringstream: (stringstream 可以用于各种数据类型之间的转换) */ std::stringstream sstr; //string to int sstr<<"520"; int value2; sstr>>value2; cout<<"string to int value2: "<<value2<<endl; //int to string int value3=125; std::stringstream sstr2; sstr2<<value3; string str2; sstr2>>str2; cout<<"int to string str2:"<<str2<<endl; string filepath="D:\\"+str2+".txt"; cout<<filepath<<endl; }
下面是结果截图:
?
?
?
? ? ?文章来源:http://www.itnose.net/detail/6039693.html
更多文章:http://www.itnose.net/type/55.html