尝试阅读,然后在CSV文件上写入
Trying to read AND THEN write on csv file
我正在尝试从文件中读取某些内容,然后在同一文件中写入。我有这样的东西,并创造了奇迹:
int main() {
fstream fp;
string filePath = "test.csv";
string outString;
outString += "g1;1901;3;3;4;3;3;3;3n";
outString += ";1902;3;3;4;3;3;3;3n";
fp.open(filePath, ios::app | ios::in | ios::out);
fp << outString;
fp.close();
return 0;
}
然后我有了读物,它的读数很好,但是它没有写:
int main() {
fstream fp;
string outString;
string filePath = "test.csv";
string line, csvItem;
int numberOfGames = 0;
fp.open(filePath, ios::app | ios::in | ios::out);
if (fp.is_open()) {
while (getline(fp, line)) {
istringstream myline(line);
while (getline(myline, csvItem, ';')) {
cout << csvItem << endl;
if (csvItem != "" && csvItem.at(0) == 'g') {
numberOfGames++;
}
else
break;
}
}
}
if (numberOfGames == 0) {
outString = "Game;Year;AUS;ENG;FRA;GER;ITA;RUS;TURn";
}
outString += "g";
outString += to_string(numberOfGames + 1);
outString += ";1901;3;3;4;3;3;3;3n";
outString += ";1902;3;3;4;3;3;3;3n";
fp << outString;
fp.close();
return 0;
}
如果文件不存在,则创建该文件,否则将读取。阅读部分是基于对此问题的公认答案:在C 中的CSV文件中读取特定行。
非常感谢!
到达文件末尾后,您将获得fp.eof()== true。如果您检查fp.tellg()返回的值(读/获取位置)和fp.tellp()(写入/put位置),您可以看到它们当时是无效的。
到达EOF后,在开始阅读之前,您需要重置流状态:
fp.clear();
相关文章:
- 正在将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文件数据写入数组