Ecrire ligne par ligne en c++

ger45 Messages postés 2 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 15 février 2007 - 15 févr. 2007 à 19:16
NairodDorian Messages postés 130 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 août 2008 - 16 févr. 2007 à 16:26
Bonjour à tous,
voila je debute en C mais je voudrais en fait ecrire dans un fichier mais ligne par ligne et je ne sais pas comment faire pour ne pas avoir tout l'un à la suite des autres.
Merci d'avance.

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 févr. 2007 à 19:30
Suffit de mettre '\n' en dernier octet de ce que tu vas envoyer dans le fichier.
'\r\n' 2 octets si est Windows.

ciao...
BruNews, MVP VC++
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
15 févr. 2007 à 19:30
Salut !

Il faut que tu rajoutes le caractère '\n' qui fait le saut de ligne, à la fin de ce que tu écris.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
15 févr. 2007 à 19:33
Ah la la ! A 2 sec près !
BruNews, l'homme qui répond plus vite que son ombre !

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
ger45 Messages postés 2 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 15 février 2007
15 févr. 2007 à 19:38
Bon je vais passer pour un boulet mais vous pouvez pas donner un exemple stp???parce que je vois pas tros ou mettre mon "\n"
Je l'utilise pas comme un caractère??
0

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

Posez votre question
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
15 févr. 2007 à 19:46
Si '\n' est 1 et 1 seul caractère.
Fais des recherches sur le site, tu trouveras de quoi.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
NairodDorian Messages postés 130 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 août 2008
16 févr. 2007 à 16:26
Dans ton titre il est ecrit : "ecrire ligne par ligne en c++" et toi tu dis "voila je debute en C mais je voudrais en fait ecrire dans un fichier mais ligne par ligne[...]"
On sait pas si tu fais du C ou du C++ ;)

Deux exemples :
Version C :

#include <stdio.h>

main()
{
FILE *f;
if (!(f = fopen("C:\\test.txt", "w")) { fprintf(stderr, "Erreur creation fichier...\n"); return 1; }
else {
fprintf(f, "Mon texte...\n");
fclose(f);
}
}

Ca c'est quand tu ecris dans un fichier (texte) sinon utilises la fonctione fwrite si tu veux ecrire en ouverture binaire.
Par exemple :

#include <stdio.h>
#include <stdlib.h> // malloc
#include <string.h> // strcpy

typedef struct _sMASTRUCT
{
char *psznom;
int age;
}MASTRUCT, *LPMASTRUCT;

main()

 FILE *f;
 LPMASTRUCT pms = malloc(sizeof(MASTRUCT));
 pms->psznom = malloc(sizeof(char) * 64); if (pms NULL || pms->psznom NULL) {
  goto clean;
  return 1;
 } else {
  strcpy(pms->psznom, "mon nom");
  f = fopen("C:\\test.txt", "wb"); // ecriture binaire
  if (f == NULL) {
   fprintf(stderr, "Erreur ouverture...\n");
   goto clean;
  } else {
   fwrite(f, pms, sizeof(MASTRUCT), 1);
   fclose(f);
   free(pms->psznom);
   free(pms);
   fclose(f);
   printf("enregistrement terminer.\n");
   return 0;
  }
 }
clean:
 if (pms->psznom != NULL) free(pms->psznom);
 if (pms != NULL) free(pms);
 fprintf(stderr, "Allocation memoire erreur !\n");
 return 1;
}

Version C++ :

#include
#include <fstream>

using namespace std;

int main(void)
{
   ofstream f("C:\\test.txt");
   if (!f) {
      cerr << "Erreur creation fichier." << endl;
      return 1;
   } else {
      /* Les deux sont la meme chose */
      f  << "ma ligne\n";
      f << "ma ligne" << endl;
      f.close();
      cout << "Ecriture avec succes." << endl;
   }
   return 0;
}
0
Rejoignez-nous