C ++如何在文本文件中拆分字符串

时间:2014-11-04 11:37:17

标签: c++ string split string-split

我有一个文本文件,希望通过拆分文件中的字符串将其解压缩为两个文本文件。

文本文件如下所示:

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

任何人都可以帮助我吗?

3 个答案:

答案 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
}

Live Example

这些步骤中的每一个都可以通过对SO的单一研究来解决,即文件打开c ++&#34;,&#34;文本分隔符读取&#34;和类似的关键词。

答案 2 :(得分:0)

  1. 使用getline()从src文件中读取每一行。 为: while( getline(srcfile,str) ) { //todo:: }
  2. 使用find_first_of()分割此行字符串。 as: 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()); }
  3. 输出字符串_head和_tail到您的文件;