Bu bence oldukça basit olmalı, ancak benim googling'im şu ana kadar yardımcı olmadı ... C++ 'da var olan bir dosyaya yazmam gerekiyor, fakat mutlaka dosyanın sonunda.C++ 'da bir dosyanın ortasına nasıl yazılır?
Sadece dosyama metin eklemek istediğimde, akım nesnesimde open
numaralı telefonu çağırırken bayrağı ios:app
iletebilirim. Ancak, bu sadece dosyanın sonuna kadar yazmamı, ama ortalarına değil.
#include <iostream>
#include <fstream>
using namespace std;
int main() {
string path = "../test.csv";
fstream file;
file.open(path); // ios::in and ios::out by default
const int rows = 100;
for (int i = 0; i < rows; i++) {
file << i << "\n";
}
string line;
while (getline(file, line)) {
cout << "line: " << line << endl; // here I would like to append more text to certain rows
}
file.close();
}
Dizinlenmiş bir dosya kitaplığı kullanmak isteyebilirsiniz (örneğin [GDBM] (http://www.gnu.org.ua/software/gdbm/) veya [sqlite] (http://sqlite.org/) , ya da tam teşekküllü bir veritabanı ([PostgreSQL] (http://postgresql.org/), [MongoDB] (http://mongodb.org/) ....) –
Dosyaları değiştirmenin standart yolu: okuma girişi dosya, süreç, yeni çıktı dosyasına yazılırsa, çıktı dosyası ile giriş dosyasının üzerine yazılır. "Daha hızlı" alternatifler vardır (ios :: app gibi), ancak her durum için değildir. – stefaanv
Bu daha önce milyonlarca kez istenmemiş mi? –