[C/C++标准库]_[0基础]_[使用fstream合并文本文件]

本文介绍了一个用C++实现的文本文件合并程序,能够将多个文本文件合并成一个,并且从第二个文件开始会忽略每一文件的第一行内容。该程序支持合并两个以上的文件,并通过命令行参数指定输入及输出文件。


场景:

1. 就是合并文本文件,而且从第2个文件起不要合并第一行.

2. 多加了一个功能,就是支持2个以上的文件合并.

3. 问题: http://ask.youkuaiyun.com/questions/192151



仅仅能说非常easy: 基础只是关吧,这位同学,也有可能不是开发的,放这里也是为了培训基础差的.

test.cpp

#include <fstream>
#include <string>
#include <iostream>

using namespace std;


//最后一个參数是输出文件.
//支持多余2个的文件合并
//使用方法,命令行: test.exe 1.txt 2.txt  output.txt
int main(int argc, char const *argv[])
{
	cout << "usage1: test.exe 1.txt 2.txt output.txt" << endl;
	cout << "usage2: test.exe 1.txt 2.txt ... output.txt" << endl;
	if(argc <= 3) return -1;

	bool first_line_readed = false;
	ofstream fout(argv[argc-1], ios::out);
	for(int i = 1 ; i< argc - 1; ++i)
	{
		ifstream fin(argv[i]);
		string str;
		int line_number = 0;
		while(getline(fin,str))
		{
			if(!line_number)
			{
				if(!first_line_readed)
				{
					first_line_readed = true;
					str.append("\n");
					fout.write(str.c_str(),str.size());
				}				
			}else
			{
				str.append("\n");
				fout.write(str.c_str(),str.size());
			}

			line_number++;
		}
	}
	cout << "finish..." << argv[argc-1] << endl;
	return 0;
}


转载于:https://www.cnblogs.com/claireyuancy/p/6943267.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值