我能够阅读我的文本文件。现在我想逐行解析字符串。 我正在使用头文件和cpp文件.. 任何人都可以帮我解析教程。 哪里可以找到一个很好的解析教程?
答案 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::find
或std::string::find_first
查找结束字符;也考虑到字符串的结尾,因为最后一个字段可能不包含终止字符。使用此位置确定字段的长度(结束字段位置 - 起始字段位置)。最后,使用std::string::substr
来提取字段的内容。
使用std::string::substr
方法提取文本。可以使用先前字段的累计长度(如果有)和当前字段的大小来计算起始位置和结束位置。
字段的内容可能不是字符串,需要转换为内部数据类型。例如,一个数字。使用std::istringstream
将字段文本转换为内部数据类型。