如何正确格式化csv文件?
How to format csv file properly?
#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++ 中的数组从零开始。
@john的答案是正确的,此外,如果任何数组索引从 0 开始,您必须在[0]
处启动nameArray[]
和ageArray[]
的索引,而不是在[1]
处C++:
#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[0] << ',' << ageArray[0] << '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.close();
return 0;
}
相关文章:
- 正在将csv文件读取为双精度矢量
- 如何选择在 csv 文件中输出的位置
- 有没有办法在不使用 getline() 的情况下从.csv文件中读取?
- 无法读取C++中的 CSV 文件
- 流:CSV 文件中的换行符
- 是否可以使用 Python csv 阅读器读取使用 C++ std::setw 生成的文件?
- 使用从文件(stod、strtod、atof)中提取的数据C++从字符串转换为双精度.csv
- 如何正确格式化csv文件?
- 正在分析CSV文件-C++
- 如何获取组件和搜索 CSV 文件
- C++ 中的 CSV 文件管理(特别是设置标头和每个标头将分别具有的值)
- 无法逐行读取.csv文件
- 非常快速地阅读 CSV 文件
- 该程序将.csv文件中的一系列单词放入数组中,然后随机生成句子.但它不起作用
- CSV文件之间的差异,使用getline()产生不同的结果
- 将 CSV 文件中的双倍值C++到矢量中
- C++ 将 CSV 文件的列写入向量
- 使用getline读取.csv文件时出现问题
- CSV文件未从缓冲区获取数据
- 错误的值是使用c++从CSV文件数据写入数组