在循环中写文件

lanse20_2010 2010-11-21 08:17:36
我想实现一个功能,就是把一个txt文件分成几部分写入一个新的txt(假如是读一行写入一个新的txt文本)。开始循环,读入文本,然后每一次循环创建一个txt文件,并把读入的文本(假如是一行数据)写入新的txt中。请问怎么实现,谢谢啦!!!
最好有代码!!!
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dubiousway 2010-11-21
  • 打赏
  • 举报
回复
文件名用 sprintf 生成
如果第1个是 dst001.txt
如果第2个是 dst002.txt
如果第3个是 dst003.txt

int i=1;
sprintf(buf,"dst%03d",i++)


#include <stdio.h>
void main(){
FILE * fpr, * fpw;
int i;
char buf[128],fname[128];

fpr=fopen("f:/tst.txt","r");
for(i=1;fgets(buf,128,fpr);i++){
//如果空行不写入文件的话,这里要加一个判断,如果为空行,执行 continue;
sprintf(fname,"f:/dst%03d.txt",i);
fpw=fopen(fname,"w");
fputs(buf,fpw);
fclose(fpw);
}
fclose(fpr);
}
zjs100901 2010-11-21
  • 打赏
  • 举报
回复
楼主是要每个新文件的名字,以1.txt,2.txt,3.txt这样的顺序命名吗

CString str;
str.Format( "%d.txt", i );//i是已增加的值
FILE *fp = fopen( (LPCTSTR)str, "w" );
...
kingmon0532 2010-11-21
  • 打赏
  • 举报
回复
用sprintf("%d",i);可以将数字装话为字符串也就是你所说的所谓的文件名
lanse20_2010 2010-11-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kingmon0532 的回复:]

用两个FILE指针.打开一个你要读一个你要写的文件.
然后fgets(fp1)一行读出来.fputs(fp2)/
然后在将fp2打开另外一个文件.
在执行上面的抄作.....
[/Quote]
问一下啊,就是读了之后一个循环 i 结束了,然后开始下一个循环,这时候我要创建一个新的文件,文件名字是 i+1 。这一步怎么写呢?谢谢啦
kingmon0532 2010-11-21
  • 打赏
  • 举报
回复
用两个FILE指针.打开一个你要读一个你要写的文件.
然后fgets(fp1)一行读出来.fputs(fp2)/
然后在将fp2打开另外一个文件.
在执行上面的抄作.....

65,210

社区成员

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

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