[C++]读写文件

C++对文件处理没有shell等脚本语言方便,但也不是无计可施。

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

using namespace std;

int main()
{
	ifstream in("a.txt");
	ofstream out("b.txt");

	if(!in || !out)
	{
		cerr << "Can not open the files!" << endl;
		return -1;
	}
	string line, tmp;
	while(getline(in, line))
	{
		istringstream iss(line);
		while(iss >> tmp)
		{
			out << tmp << "	";
		}
		out << endl;
	}

	in.close();
	out.close();

	return 0;
}

补充:

文件打开方式选项:
  ios::in        //供读,文件不存在则创建(ifstream默认的打开方式)
  ios::out       //供写,文件不存在则创建,若文件已存在则清空原内容(ofstream默认的打开方式)
  ios::ate       //文件打开时,指针在文件最后。可改变指针的位置,常和in、out联合使用
  ios::app      //供写,文件不存在则创建,若文件已存在则在原文件内容后写入新的内容,指针位置总在最后
  ios::trunc      //在读写前先将文件长度截断为0(默认)
  ios::nocreate    //文件不存在时产生错误,常和in或app联合使用
  ios::noreplace   //文件存在时产生错误,常和out联合使用
  ios::binary     //二进制格式文件  

随机读写文件:
  seekg(绝对位置)      //绝对移动,    //输入流操作
  seekg(相对位置,参照位置)   //相对操作
  tellg()            //返回当前指针位置
  seekp(绝对位置)      //绝对移动      //输出流操作
  seekp(相对位置,参照位置)  //相对操作   
  tellp()              //返回当前指针位置
  参照位置:
  ios::beg           //相对于文件头
  ios::cur           //相对于当前位置
  ios::end            //相对于文件尾

原文地址:https://www.cnblogs.com/Rosanna/p/3790769.html