c ++将控制台值复制到csv

时间:2017-07-23 21:11:02

标签: c++ csv

C ++中的新功能,我打算在将.csv文件打开到我要创建的另一个.csv文件后,复制我在控制台上读取的值。不幸的是,它只复制最后一个值,而不是整个值。有帮助吗?非常感谢!

{{1}}

3 个答案:

答案 0 :(得分:2)

您的方法明显存在问题:

1)在读取整个输入文件后创建输出文件,这意味着只将最后一个值写入输出文件。

2)即使您修复了1),您仍然会以错误的顺序将csv值写入输出文件。建议:逐行阅读 - >在控制台上打印线 - >将该行写入文件。

这是解决问题的简单方法(只是一个可以改进的例子):

#include <iostream>
#include <fstream>
#include <string>

int main () {

   std::ifstream filetocopy("ecommerce.csv");
   std::ofstream numbers("testing.csv");
   std::string line;

   while(std::getline(filetocopy, line)) {
      std::cout << line << std::endl;
      numbers << line << std::endl;
   }

   return 0;
}

答案 1 :(得分:0)

这里有两个问题。

首先,在您使用并丢弃大部分数据之后,才创建要输出的ofstream

其次,在while循环中,您所做的只是将数据写入标准输出而不是文件。

要解决此问题,您需要在ofstream循环之前移动while初始化并将numbers << d << endl;移动到循环中。

答案 2 :(得分:-2)

将您的ifstream视为旧的录像机磁带。正在使用while循环打印字符

while(filetocopy>>d){
cout << d << endl;}

你的ifstream完成了“播放”。每个循环d都会获得一个新的磁带框架并将其打印出来。所以tapehead在最后,现在d只是持有学分的最后一帧。因此,当您将其写入新的csv时,这是它留下的唯一值。

尽量不要先打印出所有这些值。