C++ 操作txt如何做到循环读取一行删除一行,或者读取一行修改掉这一行也行。

haode688 2012-11-13 08:58:50
txt例如:
aaaaaa
bbbbbb
cccccc
dddddd

按行读取,读取了进行处理之后删除掉这一行,或者改掉这一行。


    
ifstream fin(“a.txt”);
char line[100] = {0};
while(fin.getline(line, sizeof(line)))
{
}
...全文
573 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gz_qmc 2012-11-17
  • 打赏
  • 举报
回复
只是你现在接受不了
gz_qmc 2012-11-17
  • 打赏
  • 举报
回复
有,有,有,有,有,有
haode688 2012-11-17
  • 打赏
  • 举报
回复
楼上的是读取完了才生成txt,有更好的答案吗
  • 打赏
  • 举报
回复
引用 8 楼 haolly 的回复:
引用 6 楼 haode66 的回复:引用 4 楼 txg703003659 的回复:C/C++ code 1234567891011 ifstream fin(“a.txt”); ofstream fout("a.txt",ios::trunc); char line[100] = {0}; while(fin.getline(line, ……
不好意思,这个当时没怎么想就写了 改成这样,测试通过

#include <iostream>
#include <vector>
#include <string>
#include <fstream>
using namespace std;

int main(int argc,char **argv)
{



   ifstream fin("D:\\test.txt");
   vector<string> vec_str;
   char line[100];
   while(fin.getline(line, sizeof(line)))
   {
	
	//修改s或者让s为空
	   string s("222");	   
	   vec_str.push_back(s);
	
   }
   ofstream fout("D:\\test.txt",ios::trunc);
   vector<string>::iterator ivec=vec_str.begin();
   while(ivec!=vec_str.end())
   {   
	fout<<(*ivec).c_str();
	fout<<"\n";
	++ivec;
   }
   return 0;
}
haolly 2012-11-13
  • 打赏
  • 举报
回复
引用 6 楼 haode66 的回复:
引用 4 楼 txg703003659 的回复:C/C++ code 1234567891011 ifstream fin(“a.txt”); ofstream fout("a.txt",ios::trunc); char line[100] = {0}; while(fin.getline(line, sizeof(line))) ……
ios::trunc方式清空了a.txt中的内容
haode688 2012-11-13
  • 打赏
  • 举报
回复
4楼的不行啊, ofstream fout("a.txt",||ios::trunc); 还没读取到就全删了
haode688 2012-11-13
  • 打赏
  • 举报
回复
引用 4 楼 txg703003659 的回复:
C/C++ code 1234567891011 ifstream fin(“a.txt”); ofstream fout("a.txt",ios::trunc); char line[100] = {0}; while(fin.getline(line, sizeof(line))) { ……
这个变成了“复件 a.txt”??
Ahh_Freshmeat 2012-11-13
  • 打赏
  • 举报
回复
弱弱问下 一行有多大啊 有默认值吗 char line[100]装的下不
  • 打赏
  • 举报
回复

ifstream fin(“a.txt”);
ofstream fout("a.txt",ios::trunc);
    char line[100] = {0}; 
    while(fin.getline(line, sizeof(line)))
    {
                     
            //修改,直接改line里面的内容,删除就清空line
            fout<<line;
             
    }
  • 打赏
  • 举报
回复

ifstream fin(“a.txt”);
ofstream fout("a.txt",||ios::trunc);
    char line[100] = {0}; 
    while(fin.getline(line, sizeof(line)))
    {
                    
            //修改,直接改line里面的内容,删除就清空line
            fout<<line;
            
    }
haode688 2012-11-13
  • 打赏
  • 举报
回复
要在读取当前一行之后就修改或删除,不要等循环结束了才改动文件。 请高手给代码
baichi4141 2012-11-13
  • 打赏
  • 举报
回复
全部读取到内存,修改,全部写入文件 要实现楼主所说的效果,就每改一行就重复上面的行为一次

64,654

社区成员

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

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