C++读取txt文档内容并截取相应的字符串

来源:互联网 发布:电脑网络问题在线解答 编辑:程序博客网 时间:2024/05/16 00:51

简介:

        在D盘下有一个txt的文档,里面有如下内容

包含,优惠包,回复固定内容,Y,3,1879812;
包含,优惠包2,回复固定内容4,N,2,187981223;
包含,优惠包,回复固定内容,Y,3,1879812;
包含,优惠包2,回复固定内容4,N,2,187981223;
包含,优惠包,回复固定内容,Y,3,1879812;
包含,优惠包2,回复固定内容4,N,2,187981223;
包含,优惠包,回复固定内容,Y,3,1879812;
包含,优惠包2,回复固定内容4,N,2,187981223;
包含,优惠包,回复固定内容,Y,3,1879812;
包含,优惠包2,回复固定内容4,N,2,187981223;


       我通过C++读取每一条记录,然后用“,”隔开不同的内容。最后将每一条记录拆分,把每一小部分存放到相应变量中,最后存到数据库,或者让它显示在List Control的对应字段中去。以下是具体代码。

#include "stdafx.h"
#include <iostream>  
#include <fstream>  
#include<string>
#include <vector>
using namespace std;  
int _tmain(int argc, _TCHAR* argv[])
{
vector<string> v;
fstream is("D://1.txt");
string s,s1,s2,s3,s4,s5,s6;
while(getline(is,s))
v.push_back(s);

for (int i=0;i<v.size();i++)
{
cout<<v[i]<<"\n";
char *tem=(char*)v[i].c_str();
char *tokenPtr=strtok(tem,",");
int k=0;
while(tokenPtr!=NULL)
{
++k;
switch (k)
{
case 1:
s1=tokenPtr;
break;
case 2:
s2=tokenPtr;
break;
case 3:
s3=tokenPtr;
break;
case 4:
s4=tokenPtr;
break;
case 5:
s5=tokenPtr;
break;
case 6:
string tem=tokenPtr;
s6=tem.erase(tem.length()-1,tem.length());
break;

}
tokenPtr=strtok(NULL,",");
}
cout<<s1<<"\n"<<s2<<"\n"<<s3<<"\n"<<s4<<"\n"<<s5<<"\n"<<s6<<"\n";
}
return 0;
}





原创粉丝点击