我有一个文本文件,希望通过拆分文件中的字符串将其解压缩为两个文本文件。
文本文件如下所示:
LIST.TXT
A00.0 - Description
A01 - Some other text here
B07.2 - Lorem ipsum
..........................
我想提取部分" A00.0"在新的文本文件中,描述部分在另一个文本文件中。
Code.txt
A00.0
A01
B07.2
Desc.txt
Description
Some other text here
Lorem Ipsum
任何人都可以帮助我吗?
答案 0 :(得分:0)
你不必真的"分裂"它
#include<stdlib.h>
#include<iostream>
#include<cstring>
#include<fstream>
using namespace std;
int main()
{
ifstream listfile;
listfile.open("List.txt");
ofstream codefile;
codefile.open("Code.txt");
ofstream descfile;
descfile.open("Desc.txt");
string temp;
while(listfile>>temp)
{
codefile<<temp<<endl;
listfile>>temp;
getline(listfile, temp);
temp=temp.substr(1, temp.length() - 1);
descfile<<temp<<endl;
}
listfile.close();
codefile.close();
descfile.close();
return 0;
}
答案 1 :(得分:0)
至于STL这样做的方式,并且由于你事先知道了分隔符及其位置,你可以按如下方式进行:
std::ifstream file("text.txt");
if (!file)
return ERROR; // Error handling
std::string line;
while (std::getline(file, line)) {
std::istringstream iss(line);
std::string first, second;
iss >> first;
iss.ignore(std::numeric_limits<std::streamsize>::max(), '-');
iss >> second;
std::cout << first << " * " << second << std::endl; // Do whatever you want
}
这些步骤中的每一个都可以通过对SO的单一研究来解决,即文件打开c ++&#34;,&#34;文本分隔符读取&#34;和类似的关键词。
答案 2 :(得分:0)
while( getline(srcfile,str) )
{
//todo::
}
string _token_str = " - ";
size_t _pos = str.find_first_of(_token_str);
if ( std::string::npos!=_pos )
{
// head: A00.0
string _head = str.substr(0,_pos);
// tail: Description
string _tail = str.substr(_pos+_token_str.size());
}