Ecrire dans un fichier

Signaler
Messages postés
3
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
15 décembre 2004
-
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
16 octobre 2008
-
Bonjour,

J'ai un problème à priori tout simple :
Je désire écrire des valeurs (de type entier et flottant) dans un fichier texte.
Il faut que le "format d'écriture" soit de la façon suivante car ce fichier (donc les données) sera relu par une autre application qui a des méthodes spécifiques...
Entier1 "tabulation" Flottant 1 "tabulation" Entier 2 .... jusqu' à huit entiers et huit flottants
Puis on enchaine sur les lignes suivantes jusqu'à 16 lignes.

En fait c'est pour relire dans un active x de type graphique qui à une méthode permettant de d'afficher des données à partir d'un fichier. Mais le fichier doit être construit de la manière suivante :
1er colonne les X 2ème colonne les Y pour la première courbe pour avoir plusieurs courbes il faut mettre à la suite 3ème colonne les X de la 2ème courbe 4eme colonne les Y de la 2ème courbe....
j'ai huit courbes à tracer de seize points

Comment en C++ écrire dans un fichier de cette façon là avec les tabulations qui vont bien ainsi que les retours à la ligne...

Ps: j'obtient les infos lignes par lignes... càd j'obtient les 1er valeurs des huits courbes ,je stocke dans le fichier, j'obtient les 2ème valeurs des huit courbes, je stocke....

Merci de m'aiguiller un peu 8-)



gba

5 réponses

Messages postés
114
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2012
1
avec la fonction fprintf,
caractère TABULATION : '\t'
caractères NOUVELLE_LIGNE : '\n'

petit exemple vite fait :

#include <stdio.h>
#include <string.h>

int main()
{
float v1=1.01, v2=5.2;
FILE *fichier;
char str[80];

fichier=fopen("fichier.txt","wt");
sprintf(str,"%.4f\t%.4f\n",v1,v2);
fprintf(fichier,str);

fclose(fichier);
}
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
sprintf(str,"%.4f\t%.4f\n",v1,v2);
fprintf(fichier,str);

=> autant faire directement
fprintf(fichier,"%.4f\t%.4f\n",v1,v2);
Messages postés
3
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
15 décembre 2004

Merci à vous deux (6co et ymca2003)

Cela fonctionne bien....

gba qui a du mal à trouver les bonnes fonctions C++ à utiliser
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
2
Mieux vaut utiliser les APIs Win32 (CreateFile, ...)
@+
Arnotic,
Admin CS, MVP Visual C++
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
16 octobre 2008

Justement comment fais ton pour passer une ligne avec WriteFile. j'ai essayé les méthodes habituel '\n' '\r' mais cela ne fonctionne pas... merci d'avance