如何在C++中从文件读取到构造函数
How to read from a file to constructor in C++?
我有一个 player.txt 文件,我需要在其中读取并将我的读数放入构造函数中,然后我将列出这些 TennisPlayer 对象。我被困在如何做到这一点。好吧,第一件事是我逐字或逐行从文件中阅读,但无法管理如何将我的读数放入构造函数中。我的构造函数有五个输入:
TennisPlayer(string firstName, tring lastName, int ranking, int totalPoints, string country)
我的部分播放器.txt文件在这里:
Novak Djokovic 16790 Serbia
Andy Murray 8945 Great Britain
其次,如何把"英国"当作一根弦?
我真的是新C++,处于绝望的境地。谢谢大家的帮助。
从文件创建一个流,然后将其传递给这样的类。它将迭代文件,将值存储在向量中,然后在构造函数中初始化这些对象的向量。为了阅读这个国家,我们一直在阅读文字,直到我们找到行的尽头。因此,我假设每个网球运动员都在一行中指定。
请注意,这里没有错误检查,您可能希望添加
class TennisPlayersList
{
public:
struct TennisPlayer
{
std::string first_name;
std::string second_name;
int ranking;
int total_points;
std::string country;
};
TennisPlayersList(std::istream& filestream)
:players(ReadPlayersFromFile(filestream))
{}
private:
std::vector<TennisPlayer> players;
static std::vector<TennisPlayer> ReadPlayersFromFile(std::istream& filestream)
{
std::vector<TennisPlayer> p;
while (filestream.eof() == false)
{
p.push_back(ReadPlayer(filestream));
}
return p;
}
static TennisPlayer ReadPlayer(std::istream& filestream)
{
using namespace std;
TennisPlayer player;
std::string line;
getline(filestream, line);
std::stringstream ss(line);
ss >> player.first_name;
ss >> player.second_name;
ss >> player.ranking;
ss >> player.total_points;
// country could be several words, keep appending until we have finished
while (ss.good())
{
std::string country_part;
ss >> country_part;
if (player.country.empty())
player.country += country_part;
else
player.country += " " + country_part;
}
return player;
}
};
用这样的东西打电话
std::fstream players;
players.open("tennis_players.txt", std::ios::in);
TennisPlayersLists list(players);
players.close();
相关文章:
- 正在将csv文件读取为双精度矢量
- 将从格式化文本文件读取的文本数据存储到链表
- C++ 读取文件读取文件不正确
- 使用对象文件读取三角形数据网格
- 如何减慢从 BVH 文件读取的 opengl 动画?
- 从文件读取,并写入函数C++中的数组
- 从对象C++中的文件读取内容时出现分段错误
- 从文件读取并通过矢量输出到控制台
- 尝试将字符串从文件读取到无符号字符向量中
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 简化文件读取的函数
- 如何将逗号分隔的文件读取为 2D int 数组?
- 在 c++ 中将数据从文件读取到队列中
- 'std::wstring_convert'尽可能多地转换(从 UTF8 文件读取块)
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 文件读取C++包括空格键
- 从文件读取时未将值推回矢量
- 从文件 C++ 读取时的无限循环
- 从同一文件读取和写入?
- 从.txt文件读取到C++中的双精度向量