这次的问题比较具体了- -~文件读写替换的
最近弄数据库,头都大了,真的是数据哭啊~~~
现在我有一个input.txt的文件,内容如下
第一个书柜
类型:科普
数量:121
管理人员:李四 钱八
第二个书柜
类型:人文
数量:581
管理人员:赵五 孙六 王七
第三个书柜
类型:历史
管理人员:张三 钱八 赵五 孙六
第四个书柜
类型:地理
数量:1068
管理人员:王羲之 黑牛 达芬奇
(名字中间有空格两个空格哦)
我想把他生成output.txt的文件
格式是:
第一个书柜,科普,121,李四,钱八
第二个书柜,人文,581,赵五,孙六,王七
第三个书柜,历史,0,张三,钱八,赵五,孙六
第四个书柜,地理,1068,王羲之,黑牛,达芬奇
格式就是这个样子没有的数据就用0来表示它....
[解决办法]
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
int main()
{
ifstream ifile( "input.txt ");
ofstream ofile( "output.txt ");
string line, tmp;
while (!ifile.eof())
{
getline(ifile, line); //第X个书柜
ofile < <line < < ", ";
getline(ifile, line); //类型
ofile < <line.substr(6) < < ", "; // "类型: "长度为 6
getline(ifile, line); //数量
tmp = "数量: ";
if (line.find(tmp) != string::npos)
{
ofile < <line.substr(6) < < ", ";
getline(ifile, line); //管理人员
ofile < <line.substr(10) < <endl;
}
else //当前读取的line就是 管理人员 信息
{
ofile < <0 < < ", ";
ofile < <line.substr(10) < <endl;
}
getline(ifile, line); //读取空行
}
return 0;
}