使用头文件和cpp文件在c ++中解析字符串

时间:2011-02-18 18:13:34

标签: c++

我能够阅读我的文本文件。现在我想逐行解析字符串。 我正在使用头文件和cpp文件.. 任何人都可以帮我解析教程。 哪里可以找到一个很好的解析教程?

4 个答案:

答案 0 :(得分:1)

您可以尝试http://www.cppreference.com/wiki/并查看使用字符串流的示例。

答案 1 :(得分:0)

我没有看到这与头文件有什么关系,但是这里是你逐行解析流的方法:

void read_line(std::istream& is)
{
  // read the lisn from is, for example: reading whitespace-delimited words:
  std::string word;
  while(is >> word)
    process_word(word);
  if( !is.eof() ) // some other error?
    throw "Dude, you need better error handling!";
}

void read_file(std::istream& is)
{
  for(;;)
  {
    std::string line;
    if( !std::getline(is,line) )
      break;
    std::istringstream iss(line);
    read_line(iss);
  }
  if( !is.eof() ) // some other error?
    throw "Dude, you need better error handling!";
}

答案 2 :(得分:0)

试试这个:

#include <iostream> 
#include <vector>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    ifstream fs("myFile.txt");
    string input;
    vector<string> sets;
    while( getline(fs, input) )
        sets.push_back(input);
}

答案 3 :(得分:0)

首先,您需要知道线条是否包含固定长度的字段,或者字段是否可变长度。固定长度字段通常填充,带有一些字符,例如空格或零。可变长度字段通常由逗号或制表符等字符终止。

可变长度字段

使用std::string::findstd::string::find_first查找结束字符;也考虑到字符串的结尾,因为最后一个字段可能不包含终止字符。使用此位置确定字段的长度(结束字段位置 - 起始字段位置)。最后,使用std::string::substr来提取字段的内容。

固定长度字段

使用std::string::substr方法提取文本。可以使用先前字段的累计长度(如果有)和当前字段的大小来计算起始位置和结束位置。

转换字段文本

字段的内容可能不是字符串,需要转换为内部数据类型。例如,一个数字。使用std::istringstream将字段文本转换为内部数据类型。