Bonjour,
Ma question est assez simple, j'aimerais connaître le moyen d'ajouter une ligne en début de fichier par le biais de code c++ (et non par shell avec sed)
Merci d'avance !
std::ifstream in("textfile.txt");
std::ostringstream out;
out << "\n"<<in.rdbuf();
fatal_error a écrit:salut,
ben tu ouvres le fichier (fstream std::ios::out|std::ios::app), t'ajoutes \n, et tu clos le fichier?
EDIT: en début de fichier pas vu,
ben tu peux surfer :
- Code: Tout sélectionner
std::ifstream in("textfile.txt");
std::ostringstream out;
out << "\n"<<in.rdbuf();
ou bien de manière plus générique en cherchant pour copier des fichiers
// nom de fichier temporaire utilisable
char *tmp = std::tmpnam(NULL);
// Note: valide jusqu'au prochain appel à tmpnam
// On ouvre le source
std::ifstream ifs(filename0.c_str());
// On ouvre le temporaire
std::ofstream ofs(tmp);
// On écrit la ligne d'en tete dans le temporaire
ofs << "ligne ajoutée" << std::endl;
// On copie le source dans le temporaire
ofs << ifs.rdbuf();
// on ferme le tout
ofs.close();
ifs.close();
// On supprime le source
std::remove(filename0.c_str());
// On renomme le temporaire avec le nom du source
std::rename(tmp, filename0.c_str());
{
std::ifstream inFile("machin.txt");
std::stringstream oss;
oss
#include
int main(){
std::fstream f("test.txt", std::ios::in|std::ios::out);
std::stringstream oss;
oss<<"hello \n"<<f.rdbuf();
f.seekp(0)<<oss.str();
return 0;
}
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :