我目前有这段代码,但我希望能够输出到.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;
}
答案 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
。您可以写信至ofstream
和fstream
,但不能写入 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;
}
再次感谢所有人!