如何循环读取文本文件的内容?

cailei0596 2007-09-18 04:03:25

我是想同时一行一行读两个文件,然后循环读

为什么只能读第一次


for(int i=1;i<3;i++)
{

ifs1.open(test1.txt);
ifs2.open(test2.txt);
while(getline(ifs2,str){
getline(ifs1,str1);
........
}

...全文
315 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2007-09-18
  • 打赏
  • 举报
回复
把文件打开放在for循环外面,你每次都要重新打开这个文件读第一行吗?
ckt 2007-09-18
  • 打赏
  • 举报
回复
ifstream ifs1;
ifstream ifs2;
string str1;
string str2;
ifs1.open("d:\\11.txt");
ifs2.open("d:\\22.txt");
bool flag1 = true;
bool flag2 = true;
while(flag1 || flag2)
{
if(flag1)
{
if (ifs1.eof())
flag1 = false;
else
getline(ifs1, str1);
}

if(flag2)
{
if (ifs2.eof())
flag2 = false;
else
getline(ifs2, str2);

}
// 比较时要根据flag1和flag2判断文件是否读完
// ....
}
cailei0596 2007-09-18
  • 打赏
  • 举报
回复
帮我看看这个啊
http://community.csdn.net/Expert/topic/5763/5763841.xml?temp=.4954035
Hunter8212 2007-09-18
  • 打赏
  • 举报
回复
文件比较?
不一样的话,比较结果不就出来了嘛
最外层的循环是什么意思啊?反复比较3遍吗?
不然应该把fopen放在循环外面吧?
cailei0596 2007-09-18
  • 打赏
  • 举报
回复
那如果是不一样呢?怎么办.
我的文件test由test1,test2两部分组成,我要读出来比较里面的内容。感觉挺难啊
manrenmanren 2007-09-18
  • 打赏
  • 举报
回复
这样试试
while(getline(ifs2,str)) && getline(ifs1,str1){

}

如果两个文件行数一样的这样是可以的
ckt 2007-09-18
  • 打赏
  • 举报
回复
你这样的写法
一旦test2.txt的内容读完了,循环退出
就不会在读test1.text的内容

64,639

社区成员

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

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