从一些代码中读取并将结果保存为元组

时间:2015-01-19 20:01:23

标签: c++

我正在使用一个程序进行工作,我必须以下列形式读取一些仓库数据:字符串整数double用于一大堆项目

但每次都是相同的项目(在这种情况下)我不知道数据的存储位置(或存储方式)所以我最终每次都会写入数据。

为了使事情变得复杂,我必须使用许多嵌套for循环的元组,这会增加运行时。

有没有办法让我一次读取数据并保存在文本文件中,以便将来硬编码?

e.g。如果我读到:" COKE" 5 1.99

如何创建一个文件:

tuple = {" COKE",5,1.99};

1 个答案:

答案 0 :(得分:0)

试试这个:

struct My_Tuple
{
  std::string text;
  int         number;
  double      floating_point;

  friend std::ostream& operator<<(std::ostream& out, const My_Tuple& m);
};

std::ostream& operator<<(std::ostream& out, const My_Tuple& m)
{
  out << "\"" << text << "\",";
  out << number << ",";
  out << floating_point << "\n";
  return out;
}

int main(void)
{
  My_Tuple m = {"Hello", 16, 3.14159};
  cout << m;
  return 0;
}

重载流插入运算符允许您将对象输出到std::ofstream而不更改结构。

编辑1:
对于那些无法理解如何适应文件的人:

int main(void)
{
  std::ofstream file("My_Tuples.txt");
  My_Tuple m = {"Big Mac", -6, 2.72};
  file << m;
  file.close(); // Not needed, but it is explicit.
  return 0;
}