IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Sortie de résultats .txt


Sujet :

C

  1. #1
    Membre régulier Avatar de thtghgh
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 221
    Points : 88
    Points
    88
    Par défaut Sortie de résultats .txt
    Bonjour à tous,

    J'ai un programme en C qui me renvoie comme résultats des vecteurs (3 composantes), et j'aimerais enregistrer tous ces vecteurs (lors de la compilation/execution du programme) dans un fichier rayon.txt ou seront affichées seulements les coordonnées de ces vecteurs la.

    Je n'ai aucune idée de comment procéder car je débute en C, j'aimerais de l'aide SVP !

    Voici mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #define eps0 8.85E-12
     
     
     
     
    double eps(double x, double y, double z)  //Fonction epsilon
    {
    	double m;
     
    	m=x*x+exp(-y)-z; 
    	return m;
    }
     
    double grad_epsx(double x, double y, double z) //Composante 1 du Vecteur gradient de epsilon
    {
    	double a;
     
    	a=2*x; 
    	return a;
    }
     
    double grad_epsy(double x, double y, double z) //Composante 2 du Vecteur gradient de epsilon
    {
    	double b;
     
    	b=-exp(-y); 
    	return b;
    }
     
    double grad_epsz(double x, double y, double z) //Composante 3 du Vecteur gradient de epsilon
    {
    	double c;
     
    	c=-1; 
    	return c;
    }
     
     
    void main(void)
    {
    	// int N=8; // nombre d'itérations
    	int i;
    	int j=1;
    	double r[3];  //Vecteur rayon
    	double t[3];  //Vecteur tangent
    	double temp[3];
    	double l=0;
    	double dh=0.05;
    	double norme;
     
    	r[0]=0; //Rayon de départ
    	r[1]=0;
    	r[2]=0;
     
    	t[0]=1; //Vecteur tangent de départ (normalisé)
    	t[1]=0;
    	t[2]=0;
     
    	while ((fabs(r[0])<10) && (fabs(r[1])<10) && (fabs(r[2])<10) )
    	{
     
    		for (i=0;i<=2;i++) {temp[i]=r[i];}
     
    		r[0]=r[0]+dh*t[0];
    		r[1]=r[1]+dh*t[1];
    		r[2]=r[2]+dh*t[2];
     
     
    		t[0]=(sqrt(eps(temp[0],temp[1],temp[2]))/sqrt(eps(r[0],r[1],r[2])))*t[0]+(dh/sqrt(eps(r[0],r[1],r[2])))*grad_epsx(temp[0],temp[1],temp[2]);
    		t[1]=(sqrt(eps(temp[0],temp[1],temp[2]))/sqrt(eps(r[0],r[1],r[2])))*t[1]+(dh/sqrt(eps(r[0],r[1],r[2])))*grad_epsy(temp[0],temp[1],temp[2]);
    		t[2]=(sqrt(eps(temp[0],temp[1],temp[2]))/sqrt(eps(r[0],r[1],r[2])))*t[2]+(dh/sqrt(eps(r[0],r[1],r[2])))*grad_epsz(temp[0],temp[1],temp[2]);
     
    		norme = (sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]));
     
    		t[0]=t[0]/norme; // On normalise le vecteur tangent
    		t[1]=t[1]/norme;
    		t[2]=t[2]/norme;
     
    		l=l+dh*(sqrt(eps(temp[0],temp[1],temp[2])));
     
    		/*printf("\n iteration : %d \n",j);
     
    		for (i=0;i<=2;i++)
    		{
    		printf("\nVecteur rayon (composante %d) : %lf \n",i+1,r[i]);
    		}
    		// J'aimerais afficher dans le fichier .txt chaque vecteur r obtenu a chaque itération
    		system("pause");*/
    		j++;
    	}
    	printf("\n iteration : %d \n",j);
    	printf("\nLe temps de propagation est de : %lf\n",l);
    	for (i=0;i<=2;i++)
    		{
    		printf("\nVecteur rayon (composante %d) : %lf \n",i+1,r[i]);
    		}
    	system("pause");
    }
    ----------------------------------------------------
    ----------------------------------------------------

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Ce que vous semblez chercher à faire est élémentaire.
    Essayez donc de faire un bout de code et vous verrez bien si vous avez besoin d'aide.
    Par ailleurs, vous avez une instruction system("pause");
    Si c'est seulement pour que le programme attende, je préfère

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Autant que je sache, kbhit() est une fonction non bloquante. Par conséquent un while(kbhit()); vide se traduira par une attente active, ce qui est le pire conseil que l'on puisse donner à un débutant.

    En outre, kbhit() ne retire pas le caractère du buffer. Si le programmeur ne pense pas à le faire, toutes les boucles à kbhit() seront débloquées dès le premier appui sur une touche.

  4. #4
    Membre actif Avatar de straasha
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2004
    Messages : 149
    Points : 295
    Points
    295
    Par défaut
    Pour ce qui est d'écrire dans un fichier, il te faut d'abord l'ouvrir en écriture (regarde du coté de fopen et fclose) puis utiliser fprintf pour écrire dedans
    il parait que la plume est plus forte que l'épée, heureusement j'ai une hache

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour Obsidien,
    kbhit() attend la frappe d'un touche.
    Si l'opérateur a frappé une touche, le programme continue, naturellement le programmeur a du penser à interpréter la touche frappée.
    Le schéma type est un switch() qui suit immédiatement un kbhit().
    Mais, si c'est le pire des conseils à donner à un débutant, je complète ma phrase "Je fais comme cela, mais je ne le conseille pas, en tout cas à un débutant"
    Bonne journée

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Citation Envoyé par Pierre Dolez Voir le message
    Mais, si c'est le pire des conseils à donner à un débutant, je complète ma phrase "Je fais comme cela, mais je ne le conseille pas, en tout cas à un débutant"
    C'est-à-dire que si tu veux donner des conseils − et nous les apprécions − il t'appartient d'être très précis dans tes posts. Bien souvent, les interventions de quelques lignes qui semblent avoir été écrites à la volée, sont en fait l'aboutissement de longues vérifications au préalable.

Discussions similaires

  1. Oracle 11g : sortie des résultats en xml
    Par ptit_dav dans le forum Import/Export
    Réponses: 2
    Dernier message: 21/12/2010, 15h44
  2. [PDF] Moteur de recherche et sortie du résultat en PDF
    Par C3DRIC49 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 18/06/2009, 15h57
  3. [MySQL] sortie de résultats d'un ordre sql en tableau
    Par opeo dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/08/2008, 16h56
  4. Réponses: 17
    Dernier message: 07/05/2008, 10h16
  5. Réponses: 5
    Dernier message: 09/09/2005, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo