![](/img/trans.png)
[英]vector adds CSV column data into vector rows while transfering CSV file's data into c++ vector
[英]C++, putting vector data into a .csv file
我正在做一些简单的事情,我希望它能够将向量中的所有内容放入一个.CSV文件中,其中每一行将是一个新向量,而列将是该向量中的每个位置。
这是我当前的代码,但是每当我打开CSV文件时,它就完全是空的。
任何帮助将不胜感激!
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main()
{
ofstream myfile;
myfile.open("test.csv");
vector<int> arrayOne = { 10, 20, 30, 40, 50 };
for (int i = 0; i < arrayOne.size(); i++)
{
myfile << arrayOne.at(i) << ",";
}
cin.ignore();
cin.ignore();
return 0;
}
由于标记的答案在功能上是完全正确的,因此它要求OP,但是在代码中是派生的。 这可能导致无法调试的代码或更改OP预期的行为。 请考虑以下代码:
#include <iostream>
#include <fstream>
#include <vector>
// removed "using namespace std"
int main()
{
std::ofstream myfile; // added "std::"
myfile.open("test.csv");
std::vector<int> arrayOne { 10, 20, 30, 40, 50 };
for (int i = 0; i < arrayOne.size(); i++) { // added "{"
myfile << arrayOne.at(i) << ",";
} // added "{"
myfile.close(); // <- note this correction!!
std::cin.ignore(); // added this
std::cin.ignore(); // added this
return 0;
}
using namespace std
。 该名称空间包括数十万个函数。 您可能会与其中之一发生冲突,这很难调试。 for-loop
中的括号{}
。 永远不要这样做,当在for-loop
添加一行时,您可能会遇到无法调试的问题。 在循环中不执行此行。 std::cin.ignore();
像这样关闭文件:
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main()
{
ofstream myfile;
myfile.open("test.csv");
vector<int> arrayOne = { 10, 20, 30, 40, 50 };
for (int i = 0; i < arrayOne.size(); i++)
myfile << arrayOne.at(i) << ",";
myfile.close();
return 0;
}
这里的重点是,输出流通常被缓冲。 关闭文件时, close()
函数可确保将任何未决的输出序列写入文件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.