做了个tc简单题srm144divII,题意是给定秒数求datetime就是一般的时间格式XX:XX:XX
一开始犯了个低级错误,(char)(x/3600+'0'):这样做的错误,想必瞄一眼就看得出来。10以的数字还行,可以转换成字符型的,超过10的就以9以上的ASCII码对应的特殊字符表示。
(以前xnw问我迷宫问题时就遇过,但当时没认真对待,>_<.)
那题后来参考了下别人的写了个:
#include<iostream>
#include <sstream>
Class Time{
Public:
String whaTime(int t){
Strinfstream str;
Str<<t/3600<<':'<<t/60%60<<':'<<t%60;
Return str.str();
}
}
学习了新东西,sstream库,有了这东西类型转换就轻松多了。
stringstream sstr;
//--------int转string-----------
int a=100;
string str;
sstr<<a;
sstr>>str;
cout<<str<<endl;
参考链接:http://blog.csdn.net/strollerv/article/details/1483483
两个程序的istringstream 用>>
Ostringstream 用<<输出,正如cout
Istringstream用>>输入,正如cin
Stringstream 的几个函数:
str()成员函数的使用可以让istringstream对象返回一个string字符串
删除的话,clear不好用,sstr.str("");clear()是清除出错状态,str( " ")才是清空。
在上面的链接文章里,还有个分界获取有趣的东西。