I/O流问题,高手帮帮忙

jianhuili 2010-06-03 10:17:57
编写程序,给一个文本文件加上行号后存到另外一个文件中
...全文
181 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dadun 2010-06-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jianhuili 的回复:]
不能在原文本里直接插进去吗?
[/Quote]

应该不行吧,最起码也得读文件啊。

不了解啊,直接插是什么意思?楼主想直接往硬盘里插吗?那样的话不知道会不会把原来存的东西破坏了,毕竟你得从中间插不是从文件末尾,空间怎么申请呢?
jianhuili 2010-06-03
  • 打赏
  • 举报
回复
不能在原文本里直接插进去吗?
耍宝王 2010-06-03
  • 打赏
  • 举报
回复
这是根据《Thinking C++》(《C++编程思想》)中的一个例子修改的,LZ可以参考一下
#include <vector>
#include <string>
#include <fstream>
#include <cmath>
using namespace std;

int main()
{
ifstream in("txt1.txt");
ofstream out("txt2.txt");

string line;
vector<string> lines;

while(getline(in, line))
lines.push_back(line);

if(lines.size() == 0) return 0;

int num = 0;
const int width = int(log10((double)lines.size())) + 1;
out.setf(ios::right, ios::adjustfield);

for(string::size_type i = 0; i < lines.size(); i++)
{
out.width(width);
out << ++num << ") " << lines[i] << endl;
}

in.close();
out.close();
}
yyc_szzx 2010-06-03
  • 打赏
  • 举报
回复
每getline写到一个string里面去,计数器i加一,然后把i写到新文件去,再写string,换行直到结束。
cwwql 2010-06-03
  • 打赏
  • 举报
回复
getline读取一行到str,然后在在str中添加计数器,然后写入另一个文件即可。
yellowtree12 2010-06-03
  • 打赏
  • 举报
回复
学习一向
liutengfeigo 2010-06-03
  • 打赏
  • 举报
回复
你取出文件流后就好办了啊。
用循环,每读取一行就读进去时就加个行数~
jianhuili 2010-06-03
  • 打赏
  • 举报
回复
额,
我知道,输出流打开或创建文件是 ofstream file("文件.格式",打开方式);
输入流打开文件是 ifstream file("文件.格式",打开方式);
liutengfeigo 2010-06-03
  • 打赏
  • 举报
回复
我忘记怎么打开txt了。等厉害的人来`

65,186

社区成员

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

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