C++一段代码什么意思

praylgjywjy 2010-03-28 10:49:13
if ((!ifs.bad())&&(!ofs.bad()))
{
while(getline(ifs,line, '\n'))
{
index = line.find_first_of('I');
value = line.substr(index+1);

istringstream stream(value);
while(stream>>ip)
{
ip=ip.substr(0,ip.find_first_of(','));
ofs << ip <<"\t\t";
if(stream>>ip)
{
ip=ip.substr(0,ip.find_first_of(','));
ofs<<ip<<endl;
}
else break;
}
ofs<<endl;
}
ifs.close();

}


请问以上代码中1、while(getline(ifs,line, '\n'))是为得到一行中的那些数据?
2、 value = line.substr(index+1);中line.substr()的用法
3、ip=ip.substr(0,ip.find_first_of(','));什么意思
以上为实现两个相邻的数据同时输出,是哪个语句实现的?

...全文
186 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunm42000 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cattycat 的回复:]
getline(ifs,line, '\n'))是为得到一行中的那些数据?
这个是读取到文件中的一行数据,后面的'\n'表示换行的,也就是读整行数据了

substr取从index+1开始的子串

ip.find_first_of(','));找到 ','第一次出现的位置,然后substr就是从0到该位置的子串了

这些函数用法都是string的函数,查一下吧
[/Quote]
对getline和一些字符串处理 lz可以用txt体会一下
praylgjywjy 2010-03-29
  • 打赏
  • 举报
回复
顶起来啊!!!
na2650945 2010-03-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cattycat 的回复:]
getline(ifs,line, '\n'))是为得到一行中的那些数据?
这个是读取到文件中的一行数据,后面的'\n'表示换行的,也就是读整行数据了

substr取从index+1开始的子串

ip.find_first_of(','));找到 ','第一次出现的位置,然后substr就是从0到该位置的子串了

这些函数用法都是string的函数,查一下吧
[/Quote]
正解。
学习。
cattycat 2010-03-28
  • 打赏
  • 举报
回复
getline(ifs,line, '\n'))是为得到一行中的那些数据?
这个是读取到文件中的一行数据,后面的'\n'表示换行的,也就是读整行数据了

substr取从index+1开始的子串

ip.find_first_of(','));找到 ','第一次出现的位置,然后substr就是从0到该位置的子串了

这些函数用法都是string的函数,查一下吧

praylgjywjy 2010-03-28
  • 打赏
  • 举报
回复
没查到满意的结果,我想针对这个程序来理解
lirg8405 2010-03-28
  • 打赏
  • 举报
回复
1、你在输入回车前的所有数据
2、substr取数据,具体百度吧.....
3、查找ip中第一个,出现的位置,详细百度
昵称很不好取 2010-03-28
  • 打赏
  • 举报
回复
google getline、substr、find_first_of的用法
ypb362148418 2010-03-28
  • 打赏
  • 举报
回复
自己Google一下就全都知道了
fish_phenix 2010-03-28
  • 打赏
  • 举报
回复
istringstream stream(value);
while(stream>>ip)


上面是 用value初始化 stream,然后把stream的内容写入ip

虽然个人觉得没什么用 他们应该都是 std::string 直接赋值好了撒


不明白while(stream>>ip)
中嵌套下面的

if(stream>>ip) 有什么用
praylgjywjy 2010-03-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cattycat 的回复:]
[/Quote]
如果getline(ifs,line, '\n'))写成getline(ifs,line)也是去一行的数据吧?这里为什么后面还加了'\n'呢?
blueink_200451 2010-03-28
  • 打赏
  • 举报
回复
4楼的是正解。
praylgjywjy 2010-03-28
  • 打赏
  • 举报
回复
继续加油哦,可以说说对这几个函数的理解

64,646

社区成员

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

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