首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这次的有关问题比较具体了- -文件读写替换的

2012-03-22 
这次的问题比较具体了- -~文件读写替换的 最近弄数据库,头都大了,真的是数据哭啊~~~现在我有一个input.txt

这次的问题比较具体了- -~文件读写替换的

最近弄数据库,头都大了,真的是数据哭啊~~~


现在我有一个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;
}

热点排行