【问题标题】:How to change the delimiter in C++ [for csv]如何更改 C++ 中的分隔符 [for csv]
【发布时间】:2020-03-25 05:50:29
【问题描述】:

我正在尝试将数据从字符串传递到 .csv 文件,但我想知道如何将分隔符从逗号更改为任何其他字符,甚至没有分隔符?

data 中会有逗号,因此除了去掉逗号之外,是否可以在写入 data.csv 时删除分隔符/更改分隔符的字符?

sn-p 代码:

string buffer, data;
ofstream oFile;
oFile.open("data.csv");
//some code to generate buffer
while (buffer.length() != 0){
   size_t pos = buffer.find("end");
   data = buffer.substr(0, pos);
   buffer.erase(0, pos);
   oFile << data;
   oFile << "\n";
}
oFile.close();

【问题讨论】:

  • C++ 的 ofstream&lt;&lt; 对 CSV 格式一无所知。它只是按原样写入字符串。请举例说明buffer 包含的内容以及您希望如何更改它。
  • 嗯,简短的回答是“当然”,但这对你没有任何好处。就像你的问题一样,没有示例数据,它更像是一个假设,而不是其他任何东西。请提供您当前的格式(例如显示 10 行 data.csv)和所需的格式,注意您的定界符周围是否有空格等...MCVE 需要。
  • buffer 仅包含例如例如“天气好,我先出去走走,再买一杯”。但是,当传递到data.csv 时,它将显示为 3 列,但我想要实现的是整个字符串为 1 列。

标签: c++ export-to-csv


【解决方案1】:

我看不到您在代码中输出任何逗号的位置。当然,在写文件的时候可以输出任意字符作为字段分隔符。

您的问题可能出在读取文件的代码上。这是你必须告诉分隔符不同于逗号的地方。

也许使用双引号输出您的字段会有所帮助?那么读者可能会忽略引用字符串中的逗号。

【讨论】:

    猜你喜欢
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 2011-06-16
    相关资源
    最近更新 更多