#include <fstream>
#include <iostream>
#include <string>
int main()
{
std::ofstream myfile;
const int numberOfInputs = 9;
std::string nameArray[numberOfInputs] = {""};
int ageArray[numberOfInputs] = {0};
for(int i = 0; i < numberOfInputs; ++i)
{
std::cout << "Enter a name: ";
std::getline(std::cin, nameArray[i]);
std::cout << "Enter an age: ";
std::cin >> ageArray[i];
std::cin.get();
myfile << nameArray[i], ageArray[i], " \n";
}
myfile.open("People.csv");
myfile << "Name, Age, \n";
myfile << nameArray[1], ageArray[1], " \n";
myfile << nameArray[2], ageArray[2], " \n";
myfile << nameArray[3], ageArray[3], " \n";
myfile << nameArray[4], ageArray[4], " \n";
myfile << nameArray[5], ageArray[5], " \n";
myfile << nameArray[6], ageArray[6], " \n";
myfile << nameArray[7], ageArray[7], " \n";
myfile << nameArray[8], ageArray[8], " \n";
myfile << nameArray[9], ageArray[9], " \n";
myfile.close();
return 0;
}
有人可以解释我做错了什么吗?我以前从未对 CSV 文件做过任何事情,所以我不确定,文件中只显示名称,但所有名称都在同一行。也不知道为什么没有显示年龄:/
最佳答案
逗号不会像那样得到输出,您必须将逗号作为要输出的字符包含在内。试试这个
myfile << nameArray[1] << ',' << ageArray[1] << ",\n";
而不是这个
myfile << nameArray[1], ageArray[1], " \n";
如评论中所述,CSV 存在各种问题,例如如何处理文本中嵌入的空格或其他不寻常的字符。上面的代码没有解决这些问题,但也许足以满足您的目的。
还有另一个错误,输出语句中的数组索引从 1 到 9,它们应该从 0 到 8,因为 C++ 中的数组从零开始。
关于c++ - 如何正确格式化csv文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52355530/