C ++练习在使用Classes,getline和stringstream进行解析

时间:2017-04-11 00:59:22

标签: c++ parsing getline stringstream

我一直在努力弄清楚如何一起使用getline和stringstream来解析文件。如果有人能帮忙解释我会非常感激。非常。

我真的想要构建函数ReadFile,这是一个读取文件名的函数,包括" name,salary" 50个名称和工资的格式文本。我想将它分成名为:names [] salary []。

的数组

我到目前为止的内容如下所示,我认为根据提示我的类结构是否正常,但有人可以帮助我正确地将文件读入单独的数组吗?谢谢!

APPLY_FILTER()

1 个答案:

答案 0 :(得分:1)

此代码不应编译。将来请确保您的代码示例无需修改即可编译,并包含所有#includes。

关于ReadFile功能的一些事项:

  • 您正在重新定义变量namessalaries。你可能不想要那个。
  • index ++应为index++;
  • ifstream::open采用C字符串,因此您需要传入filename.c_str()
  • 您的第一个getline没问题,但您的第二个尝试将字符串直接复制到浮点数中。您需要明确地进行类型转换。一种方法是创建一个临时字符串变量,将其传递给getline,然后使用std::stof将该字符串转换为浮点数。这需要C ++ 11。如果您无法使用C ++ 11,则可以使用strtof中的<cstdilib>
  • 不确定ss >> ...的目的是什么,但您可能不想要它。如果您想打印结果,则需要cout << names[index] << ": " << salaries[index] << "\n";
  • 之类的内容

关于Players()构造函数的一些事情:

  • 您正在重新定义成员变量,因为您在变量名称前面包含了类型。删除类型。
  • 默认字符串构造函数创建一个空字符串,因此无需使用空字符串对其进行初始化。
  • 您可以安全地删除初始值周围的{}

大多数问题可能是通过查看编译器错误然后查找相应的C ++文档来捕获的。也就是说,我知道C ++并不是最容易入门的语言,它有助于尽早获得指针。保持它,你会得到它!