很急
时间:2008-05-10 09:59:13
来源:论坛整理 作者: 编辑:chinaitzhe
输出方式问题,我想让这两行对齐,请问这么办?能和printf那样不能
cout < <1 < <setw(10) < <2 < <endl;
cout < <"djshjf" < <setw(10) < <2 < <endl;
2
我读取时间的问题,最后那个00不好处理,因为读取时,是%d,是0.。输出时这么还输出00.。。要是sscanf能解决就好办了。。
我想的是sprintf。。可是第一参数不能是string这让我很郁闷
struct tm gif;
string s1= "23:35:00",s2;
gif.tm_sec=0;
gif.tm_min=0;
gif.tm_hour=0;
gif.tm_mday=5;
gif.tm_mon=5-1;
gif.tm_year=2008-1900;
gif.tm_wday=1;
gif.tm_yday=126;
gif.tm_isdst=0;
sscanf(s1.c_str(),"%d:%d:%d",&gif.tm_hour,&gif.tm_min,&gif.tm_sec);
cout < <gif.tm_hour < <endl < <gif.tm_min < <endl < <gif.tm_sec;
sprintf(s2,"%d:%d:%d",&gif.tm_hour,&gif.tm_min,&gif.tm_sec);
网友回复:回答问题2: d, std::cout怎么格式化忘了 呵呵
网友回复:cout < <setw(10) < <1 < <setw(10) < <2 < <endl;
cout < <setw(10) < <"djshjf" < <setw(10) < <2 < <endl;
这样行吗?
网友回复:对齐方式可以采用set::ios控制格式
网友回复:可是第一参数不能是string这让我很郁闷
那就用char[]
网友回复:
- C/C code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ 对阿!就用char[],然后用char []初始化string. 比如: char A[7]="ABC123"; string Astr(A); cout<<AStr<<endl;输出ABC123。
网友回复:
这个不能改,别人的库。。。我想要是sscanf能解决就好了,,可是对sscanf具体还是不很会用,,
网友回复:
- C/C code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ sprintf(const_cast<char*>(t1.arrive_time_.c_str()),"%d:%d:%d",&t1.arrive_time.tm_hour,&t1.arrive_time.tm_min,&t1.arrive_time.tm_sec);
天啊,我使用强制转换了!,,,记得书上说不让使用了,可还有什么办法呢
网友回复:不要用 sprintf。用 stringstream
std::string::c_str() 得到的 char* 未必是可写的内存区域,const_cast 是错误的手段。
网友回复:我运行没问题,也就是说可以用,但是不安全
网友回复:也就是说可以用,但是不安全?const_cast 是错误的手段,,那么标准为什么还要有呢
网友回复:你的t1.arrive_time_在scanf前开了多大的内存啊?
没崩溃算你人品很好了。用的VC2005吧,换个devcpp什么的就难讲了。
网友回复:t1.arrive_time_是读文件读的,,"12:53:00”,,就因为强制转化,就崩溃。没这么严重吧。。没遇见过这种情况。。//下午去看看stringstream,晚上把程序改了
用的vs2008企业中文版
关键字:
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面