如何将字符串写入.csv文件?

时间:2014-04-03 16:19:33

标签: c++ csv

我目前有这段代码,但我希望能够输出到.csv文件,而不是只打印到屏幕。有谁知道怎么做?

#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

string Weather_test;

int main()
{
    ifstream Weather_test_input;
    Weather_test_input.open("/Users/MyName/Desktop/Weather_test.csv");

    getline(Weather_test_input, Weather_test, '?');

    Weather_test.erase(remove_if(Weather_test.begin(), Weather_test.end(), ::isalpha), Weather_test.end());

    cout << Weather_test;

    return 0;
}

4 个答案:

答案 0 :(得分:2)

如果Weather_test字符串格式正确。

ofstream Weather_test_output("path_goes_here.csv", ios::app);  
      // this does the open for you, appending data to an existing file
Weather_test_output << Weather_test << std::endl;
Weather_test_output.close();

如果格式不正确,则需要将其分隔为“字段”,并在它们之间用逗号分隔。这是一个单独的问题。

答案 1 :(得分:0)

将字符串写入CSV文件就像将字符串写入任何文件:

std::string text = "description"
output_file << description << ", " << 5 << "\n";

在您的示例中,您无法写入ifstream。您可以写信至ofstreamfstream,但不能写入 ifstream

所以要么打开文件进行读写,要么在阅读后关闭并打开写作。

答案 2 :(得分:0)

要写入csv,请创建ostream并打开名为"*.csv"的文件。您可以使用operator<<在此对象上使用与先前使用它相同的方式写入标准输出std :: cout:

std::ofstream f;
f.open( "file.csv", std::ios::out);
if ( !f) return -1;
f << Weather_test;
f.close();

答案 3 :(得分:0)

谢谢你们这里的人真是太棒了!

我设法得到了我的最后一段代码(删除了我的.csv文件中的所有字母)。这是为了后人

#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

string Weather_test;

int main()
{
    ifstream Weather_test_input;
    Weather_test_input.open("/Users/MyName/Desktop/Weather_test.csv");

    getline(Weather_test_input, Weather_test, '?');

    Weather_test.erase(remove_if(Weather_test.begin(), Weather_test.end(), ::isalpha), Weather_test.end());

    ofstream Weather_test_output("/Users/MyName/Desktop/Weather_test_output.csv", ios::app);
    Weather_test_output << Weather_test << std::endl;
    Weather_test_output.close();

    cout << Weather_test;

    return 0;
}

再次感谢所有人!