istream 分隔符修改

TADICAN 2009-12-29 03:30:58
我想把ifstream的默认分隔符改为逗号,该咋改?
...全文
515 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jongan 2012-01-21
  • 打赏
  • 举报
回复
ifstream in;

const ctype<char>& _Fac = _USE(in.getloc(), ctype<char>);
WORD *pCltab=*((WORD**)&_Fac+4);
pCltab[',']=ctype<char>::space;

就可以了
Jongan 2012-01-21
  • 打赏
  • 举报
回复
调整一下比较好了解
ifstream in;

const ctype<char>& _Fac=_USE(in.getloc(),ctype<char>);
WORD* pCltab=*(WORD**)((BYTE*)&_Fac+16); // 直接位移取mask地址
pCltab[',']|=_SPACE; // 把','也加入分隔条件
taodm 2009-12-29
  • 打赏
  • 举报
回复
楼上各位已经明确表明意思了:没这种便宜事。
别挣扎了。
TADICAN 2009-12-29
  • 打赏
  • 举报
回复
不好意思,我没有把问题描述清楚。
我需要读取一连串的整数(用逗号分隔的),‘12,3,33,4’

默认情况下读取的时候整数与整数之间是用空格分隔的,怎么让它以逗号分隔。
cattycat 2009-12-29
  • 打赏
  • 举报
回复
getline可以修改为指定的分隔符。
pur_e 2009-12-29
  • 打赏
  • 举报
回复
普通的方法没有,getline方法可以输入string类型,指定分隔符,如下:

ifstream in;
string str;
getline(in,str,',');


或者用这样:

char t;
int a,b,c;
ifstream in;
in>>a>>t>>b>>c;
昵称很不好取 2009-12-29
  • 打赏
  • 举报
回复
cout<<setfill('*')<<setw(4)<<21<<endl;  

64,439

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧