从文本文件C ++(fname,lname,class,seat number)中读取,存储并验证

时间:2015-01-08 08:53:44

标签: c++ arrays string file

我有一个classlook的文本文件,如下所示:

FName LName Class SeatNum
FName2 LName2 Class2 SeatNum2
...

然后列表继续。

如何读取字符串并将它们存储到不同的变量中? 如何结合课堂和课程SeatNum是ID(3D-20)?
如何验证每个输入名称和ID必须匹配? 例如,输入> FName LName Class2-SeatNum2错误,请再试一次。

非常感谢您的帮助。 谢谢!

1 个答案:

答案 0 :(得分:1)

下次再说一遍 - 因为你没有详细说明问题,很难弄明白你的意思。总之:

为了做你所要求的事情:

a)从文件中读取数据

b)根据单元格之间的字符拆分数据。

在C ++中,分裂字符串算法正在提升 - 如果您不知道这是什么,请务必查看此处:http://www.boost.org/

<强> Soltion 我在这里修改各种cPlusPlus指南以适合您的紫癜:

#include <sstream>
#include <iostream>
#include <fstream>
#include <vector>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/classification.hpp>
using namespace std;

vector<string> getData (string filePath) {
  vector<string> Cells; // In the end, here we will store each cell's content.
  stringstream fileContent(""); // This is a string stream, which will store the database as a string.
  ofstream myfile; // the file which the database is in
  myfile.open (filePath); // Opening the file
  while ( getline (myfile,line) ) // Reading it until it's over
  {
  fileContent << line;  // adding each line to the string
  }
  split(Cells, fileContent.str(), is_any_of(" "));// Here, insert the char which seperates the cells from each other.
  myfile.close()
  return Cells; // returning the split string.
}

希望我帮助过:)