为什么不能正确显示路径,文件名?显示出来的是十六进制的.
#include <strstrea.h>
void main()
{
ostrstream ostPath,ostFile,ostExtend;
RouteTab("D:\\1.txt",ostPath,ostFile,ostExtend);//分割文件名的子函数。
cout<<"路径为: "<<ostPath<<"文件名为: "<<ostFile<<"后缀名为: "<<ostExtend<<endl;
}
问题点数:30、回复次数:10Top
1 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2004-12-01 12:54:54 得分 5
晕 RouteTab 是什么函数?
那你去看看 重载 ostrstream的cout版本。。。Top
2 楼flylonginsky(AGV->future)回复于 2004-12-09 10:02:17 得分 0
#include <strstrea.h>
#include <iostream.h>
#include <fstream.h>
void RouteTab(istrstream istRoute,ostrstream &ostPath,ostrstream &ostFile,ostrstream &ostExtend)
{
int tab=0;
istRoute.seekg(0,ios::end);
int end=istRoute.tellg()+1;
istRoute.seekg(0,ios::beg);
int a;
for(int i=1;i<end;i++)
{
istRoute.seekg(-i,ios::end);
a=istRoute.get();
if(a=='\\')
{
tab=istRoute.tellg();
break;
}
}
if(!tab)
istRoute.seekg(-1,ios::cur);
ostrstream ostname;
ostname<<istRoute.rdbuf();
istRoute.seekg(0,ios::beg);
while(istRoute.tellg()<tab)
ostPath<<(char)istRoute.get();
istrstream istname(ostname.str());
tab=ostname.pcount();
while(istname.tellg()<ostname.pcount())
{
if(istname.get()=='.')
{
istname.seekg(-1,ios::cur);
tab=istname.tellg();
break;
}
}
if(tab!=ostname.pcount())
ostExtend<<istname.rdbuf();
istname.seekg(0,ios::beg);
while(istname.tellg()<tab)
ostFile<<(char)istname.get();
cout<<ostFile;
}
void main()
{
ostrstream ostPath,ostFile,ostExtend;
RouteTab("D:\\1.txt",ostPath,ostFile,ostExtend);
cout<<"路径为: "<<ostPath<<"文件名为: "<<ostFile<<"后缀名为: "<<ostExtend<<endl;
}Top
3 楼flylonginsky(AGV->future)回复于 2004-12-09 10:58:34 得分 0
再顶
Top
4 楼pacman2000(pacman)(影子传说)回复于 2004-12-09 11:18:51 得分 15
ostrstream能直接这样cout显示内容吗? 倒。。。Top
5 楼pacman2000(pacman)(影子传说)回复于 2004-12-09 11:20:29 得分 0
用ostPath.str()试试看。Top
6 楼flylonginsky(AGV->future)回复于 2004-12-13 15:13:45 得分 0
不能倒,倒了我问谁去?.str()cout出来的有乱码啊!!Top
7 楼qufan(打死不回头)回复于 2004-12-13 16:54:38 得分 0
你试试设置下输出格式哈Top
8 楼flylonginsky(AGV->future)回复于 2004-12-16 14:51:55 得分 0
你试试设置下输出格式哈
????????
哪里的???Top
9 楼xuzheng318(忧郁王子)回复于 2004-12-16 15:40:51 得分 5
ostPath.str()Top
10 楼DiabloWalkOnTheEarth(我想到个绝妙的昵称,只是地方太小,写不下)回复于 2004-12-16 16:16:12 得分 5
ostrPath << ends; cout << ostrPath.str()Top




