从每行的文件中获取此信息的最佳方式是什么?获取文件信息到变量?
文本文件看起来像这样
1 E
1 P
1 C
2 E a
5 E P C
所以我需要从1号线(1 E)的信息把1变成一个变量,则E到另一个。对于其余的线条也是如此,但有些具有不同数量的元素,我不知道该如何去做。
从每行的文件中获取此信息的最佳方式是什么?获取文件信息到变量?
文本文件看起来像这样
1 E
1 P
1 C
2 E a
5 E P C
所以我需要从1号线(1 E)的信息把1变成一个变量,则E到另一个。对于其余的线条也是如此,但有些具有不同数量的元素,我不知道该如何去做。
你可能需要一个向量向量。
std::vector<std::vector<std::string> > info;
内载体包含在一条线上
外载体包含每一行每一字。
读取文件中的每一行,tokenise行,每个标记添加到内向量,对于单词添加矢量到矢量的每一行
听起来像一个家庭作业问题,所以我不打算发布显示如何读取文件的代码,或标记字符串
您可以使用filestream >> intvariable;
读取该行开头的整数。然后,您可以使用getline
将该行的其余部分读入一个字符串,然后将其拆分成一个数组或执行其他任何您想要的操作。你对于你想要做什么不是很具体。
快速/肮脏的解决方案。
#include <fstream>
#include <vector>
#include <string>
#include <sstream>
int main()
{
using namespace std;
typedef pair<size_t, vector<string> > infoPair;
typedef vector<infoPair > infoVector;
ifstream inputFile("test.txt");
size_t lineNumber = 1;
infoVector info;
string line;
while(getline(inputFile, line))
{
stringstream extractor(line);
vector<string> symbols;
string symbol;
while(extractor >> symbol)
{
symbols.push_back(symbol);
}
info.push_back(infoPair(lineNumber, symbols));
lineNumber++;
}
return 0;
}
为了给你任何合理的帮助,我们需要知道文件中数字和字母的含义。由于记录的长度不同,它不能只是一个与数据含义无关的通用过程。 – 2009-08-12 14:00:38
看起来像功课。 – 2009-08-12 14:02:03
你的观察与你的回答差不多 – 2009-08-12 14:06:20