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

Posted

技术标签:

【中文标题】从文本文件 C++ 中读取(fname、lname、class、seat number),存储和验证【英文标题】:Read from text file C++ (fname, lname, class, seat number), store and verify 【发布时间】:2015-01-08 08:53:43 【问题描述】:

我有一个像这样的类的文本文件:

FName LName Class SeatNum
FName2 LName2 Class2 SeatNum2
...

名单还在继续。

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

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

【问题讨论】:

我们不做作业 @P0W 不是真的。我们不会做琐碎的作业,表明缺乏研究努力和对基本语言原理的理解。其实s/homeworks/problems/. 【参考方案1】:

只是下次注意-因为您没有详细说明问题,所以很难弄清楚您的意思。总之:

为了完成您的要求,您需要:

a)从文件中读取数据

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

在 C++ 中,拆分字符串算法处于增强状态 - 如果您不知道那是什么,请务必查看这里:http://www.boost.org/

解决方案我正在这里修改各种 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.

希望我有所帮助:)

【讨论】:

简洁的解决方案,但您的包含不显示 已编辑;另外,我在途中添加了一些 cmets :)

以上是关于从文本文件 C++ 中读取(fname、lname、class、seat number),存储和验证的主要内容,如果未能解决你的问题,请参考以下文章

在文本文件中写下用户输入

如何使用 PHPExcel 解析响应表导入 Excel 文件以输入标签(例如:自动填充输入 id="fname" 到 Hello 并输入 id="lname"

SQL从重复行中只选择一行

MS Access 2016:如何将连接字段从表单输入到表中

JavaScript解释器如何解释代码?

数组字段上的唯一复合索引