c++ - 如何正确格式化csv文件?

标签 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[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/

相关文章:

c++ - 如何使用 MSVC 构建 Gnuplot? (syscfg.h(377) : error)

c++ - 如何让 QML 容器中的最后一项填充剩余空间?

c++ - 将 csv 读入数组

c++ - 将函数作为显式模板参数传递

c++ - Variadic 模板 - 如何创建存储传递参数的类型

c++ - Linux 多播后续套接字窃取数据

c++ - 如果不从堆中为字符串文字分配内存是否安全?

c++ - 使用 C++ 在 Linux 中计算磁盘读写

c++ - 带交错缓冲区的 OpenGL glMultiDrawElementsIndirect

c++ - 来自 tcmalloc 的意外行为