Lecture écriture données

0/5 (26 avis)

Snippet vu 6 034 fois - Téléchargée 36 fois

Contenu du snippet

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 :)

A voir également

Ajouter un commentaire Commentaires
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
30 août 2004 à 16:59
k tes comparaisons doivent etre pour des float
=> pas de guillemet !!!
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
30 août 2004 à 17:10
et 0.f en c, et verifie le mode d'ouverture du fichier et commence par apprendre le c (au moins quelques bases) car ca ne te servira a rien si on te donne le code tout cuit
cs_bethany Messages postés 26 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 15 mars 2005
30 août 2004 à 17:16
Mais j'en fais du c, t'es marrant toi !!!!

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...
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
30 août 2004 à 17:16
soluce :


#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
cs_bethany Messages postés 26 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 15 mars 2005
30 août 2004 à 17:17
Et puis la je ne sais pas trop quoi garder, quoi virer... c'est pour ca que cela fait 'brouillon' ...

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.