Lire et ecrire en meme temps dans un fichier avec les fstream

cs_Daimadoshi Messages postés 45 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 23 août 2007 - 27 avril 2005 à 12:01
cs_Daimadoshi Messages postés 45 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 23 août 2007 - 27 avril 2005 à 15:52
slt tlm, voila j'i un petit probleme : je voudrai pouvoir faire des
acces en lecture et en ecriture sur un fichier mais je n'y parviens pas

voici mon code :


char buffer[512];

fstream file("D:\\desktop.ini", ios::out|ios::in);

file.getline(buffer,512);

file.seekp(0);

file<<"test6";



code tres simple qui je pensais pourais faire une ( ou pls ) lecture suivi de une ( ou pls ) ecriture

et bien non la lecture ce passe bien mais l'ecriture n'ecrit rien ds le fichier !

9 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
27 avril 2005 à 12:33
Et bien ferme ton fichier ca ira mieux deja :)

file.close();
0
cs_Daimadoshi Messages postés 45 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 23 août 2007
27 avril 2005 à 12:59
c'est un oublie de ma part ( mauvais copié collé ) , bien sur dans mon code le file.close() est bien present.

donc voila a part ca une autre idée ?
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
27 avril 2005 à 13:21
Je prend un des premiers lien sur google:



fstream in_out("out.txt", ios::out | ios::in);
in_out.seekp(0, ios::end); // positionnement à la fin
in_out << "etc, ...\n"; // ajout de caractères
in_out.seekp(0, ios::beg); // positionnement au début
in_out << "C'est le début"; // écrase !
in_out.seekp(3, ios::cur); // avance de 3
in_out.close()


La fonction seekp que j'ai jamais utilisé, prend un deuxième argument, il semblerait.
0
cs_Daimadoshi Messages postés 45 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 23 août 2007
27 avril 2005 à 13:36
j'ai egalement pris ce lien, le 2nd argument n'est pas obligatoir
( je l'ai bien sur essayé ). seekp permet de se positionné dans le
fichier avec un long comme argument qui indique la nouvelle
position ( avec 0 je pense me retrouver au debut du fichier ! )

et si non quand il prend 2 arg il y a un long pour l'offset de la
position et a partir d'ou on veux partir ( ios::beg pour le debut .... )



mais le probleme ne semble pas resider dans l'utilisation de seekp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Daimadoshi Messages postés 45 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 23 août 2007
27 avril 2005 à 13:39
si tu connais une facon pour ouvrir un fichier en lecture et ecriture
differente de celle ci je suis prenneur. en cherchant j'avais trouver
celle la ( a partir de u lien que tu as donné ) mais pour une raison
que j'ignore cela ne marche pas chez moi ! je compil avec dev c++
4.9.9.2, et j'ai essayé visual et tt les 2 donne le meme resultat :
rien ne s'ecrit dans le fichier !
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
27 avril 2005 à 14:20
Essai ca chez toi, chez moi ca marche impec:



#include <fstream>

#include

using namespace std;

int main()

{

fstream fichier;

fichier.open("d:/test.txt", ios::out | ios::in);



fichier.seekp(0);

char buffer[512];

fichier.getline(buffer,512);

cout << buffer << endl;

fichier.seekp(0);

fichier <<"test9";



fichier.close();

system("PAUSE");

return(0);

}


text.txt ne contient que "test" au début. Il contient bien "test10" après.

De plus la sortie sur la console:



test

Appuyer sur ...
0
cs_Daimadoshi Messages postés 45 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 23 août 2007
27 avril 2005 à 14:31
alors j'ai testé : sur la consol j'ai bien test d'ecrit, il lit donc
bien le fichier mais il n'a pas ecrit sur le fichier. je ne comprends
vraiment pas pourquoi chez moi ca marche pas !
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
27 avril 2005 à 14:37
Tu l'ouvres bien une fois que le programme a fini de s'éxécuter ?
0
cs_Daimadoshi Messages postés 45 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 23 août 2007
27 avril 2005 à 15:52
oui juste apres avoir executé mon prog ! la taille du fichier bouge pas rien ne se passe
0
Rejoignez-nous