从文本文件 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"