Voici ma source, avis a ceux qui veulent tester...
Source / Exemple :
//MPBC_C fichier : 'miaou.cpp' traité par le MetaProgramme MétaProg de Bruno CELLE - vers 5.0.4
/// ----- MaJ le 31/08/04 : par bethany & magic_nono
/// ----- Créé le 30/08/04 : par bethany & magic_nono
/// ----- Objectif général : TODO
/// ----- Développé pour : 1 exercice C...
/// ----- Chemin original : C:\Documents and Settings\Luc\Bureau\miaou.cpp
/// ----- Nota: dans InOut peuvent être repérées des var In : aucun indice formel ne permet de noter le masquage du passage par parametre... ex : f(T i){i++;} a un effet différent si T:int ou \"#define T int&\".
#include <stdlib.h>
#include <stdio.h>
#define MAX 1024
main()
{
/// ----------------------------------------
/// ---------------- main() ----------------
/// ----------------------------------------
/// ----- Objectif : Lanceur du projet
/// ----- Auteur(s) : bethany & magic_nono 31/08/04
/// ----- PreCond : /
/// ----- PostCond : /
/// ----- Etat : 1 (-1<0<1<2)
/// ----------------------------------------
/// ----- Var Internes à la fonction (3) : buffer ,fp ,saisie
/// ----- Var Utilisées par adresse (1) : buffer
/// ----- Var Masquées (2) : buffer ,fp
/// ----- Var In Globales Constantes (1) : EOF
FILE*fp;
double saisie;
char buffer[512];
{
fp=fopen("C:\\fichier.txt","w");
if(fp == NULL)
{
fprintf(stderr,"Impossible d'ouvrir le fichier desire.\nVerifier que le fichier existe bien.");
return-1;
}
printf("\tSortie avec 0\n\n ");
while(saisie!= 0)
{
printf("Tapez un nombre: ");
fflush(stdout);
fflush(stdin);
fgets( buffer, sizeof buffer, stdin );
fflush(stdin);
fflush(stdout);
saisie=atof(buffer);
if(saisie != 0)
fprintf(fp,"%f\n", saisie);
}
fclose(fp);
}
{
fp=fopen("C:\\fichier.txt","r");
if(fp == NULL)
{
fprintf(stderr,"Impossible d'ouvrir le fichier desire.\nVerifier que le fichier existe bien.");
return-1;
}
while(fgets( buffer, sizeof buffer, fp))
{
saisie=atof(buffer);
printf("%f\n", saisie);
}
fclose(fp);
}
return 0;
}
Conclusion :
Programme qui récupere des données a l'écran, puis les ecrit sur un fichier, puis va les relire pour les afficher à l'écran.
Merci a Magic_Nono pour son aide :)
30 août 2004 à 16:59
=> pas de guillemet !!!
30 août 2004 à 17:10
30 août 2004 à 17:16
Oui j'ai pas vérif la 2eme fois l'ouverture, je demandais de l'aide parce que je voyais pas comment traiter le probleme...
Ya quelque petit truc que je connais pas super (genre nous en cours on avait vu le %5.2f par exemple et pas %0.f ),
mais ce n'est pas parce que j'y arrive pas super ke je connais pas le C, j'en connais une partie, et pas tout c sur...
30 août 2004 à 17:16
#include <stdlib.h>
#include <stdio.h>
#define MAX 1024
main()
{
FILE *fp; // pointeur sur le fichier a ecrire
double saisie; // var pour la saisie
char buffer[512];
{
fp=fopen("C:\\fichier.txt", "w");
if(fp == NULL)
{
printf("Impossible d'ouvrir le fichier desire.\nVerifier que le fichier existe bien.");
return -1;
}
printf("\tSortie avec 0\n\n ");
while(saisie!= 0) // boucle de saisie
{
printf("Tapez un nombre: ");
//
//if( sscanf( buffer, "%f" , &saisie ) == EOF ) continue;
fflush(stdout);
fflush(stdin);
//scanf("%f", &saisie); // on range saisie dans variable
fgets( buffer, sizeof buffer, stdin );
fflush(stdin);
fflush(stdout);
//if( scanf("%f", &saisie) == EOF )
// while( fgetc(stdin) != EOF );
saisie=atof(buffer);
if(saisie != 0) // si different de 0
{
fprintf(fp, "%f\n", saisie); // ecrirture du nombre dans le fichier
}
}
fclose(fp);
}
{
fp=fopen("C:\\fichier.txt", "r");
while(fgets( buffer, sizeof buffer, fp))
{
if(buffer[0]!=EOF)
{
// fscanf(fp, "%f", &saisie);
saisie=atof(buffer);
printf("%f\n", saisie);
}
}
fclose(fp);
}
return 0;
}
Voila
Magic_nono
30 août 2004 à 17:17
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.