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 << "\t";
}
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 //相对于文件尾
原文地址:http://www.cnblogs.com/Rosanna/p/3790769.html