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 :

Besoin de raffraichissement


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Par défaut Besoin de raffraichissement
    salut, jai developpé une petite application, et jla présente mardi prochain et en relisant un peu le code, j'ai besoin d'un peu d'aide sur une fonction :
    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
    char*nomdufichier()
    {
    	char *nomfichier;//nomfichier est un pointeur sur une chaine
    	int m;
    	int a;
     
    	//allocation de 12*sizeof(char) octets de type char
    	nomfichier=(char*)malloc(12*sizeof(char));
     
    	m=chopeMois();//recuperation du moi
    	a=chopeAnnee();//récuperation de l'année
     
    	//printf("Mois est %d",m);
    	//printf("Annee est %d",a);
     
     
    	a=a-100;//on veut que le dernier chiffre donc on retire 100;
    	a=a+48;//on ajoute 48 pour 'convertir' (sinon affiche smiley)
     
     
    	//m=m-10;//on prend que le dernier chiffre donc on soustrait de 10
    	//m=m+48;//on ajoute 48 pour 'convertir' (sinon affiche smiley)
     
    	nomfichier[0]='2';//on commence par l'année sinon ça pointera sur rien!
    	nomfichier[1]='0';
    	nomfichier[2]='0';
    	nomfichier[3]=a;
    	nomfichier[4]='-';
    	if(m<10)
    	{
    		nomfichier[5]='0';
     
    	}
    	else
    	{
    		nomfichier[5]='1';
    	}
    	nomfichier[6]=m+48;
    	nomfichier[7]='.';
    	nomfichier[8]='t';
    	nomfichier[9]='x';
    	nomfichier[10]='t';
    	nomfichier[11]='\0';//pour dire qu'on est bien à la fin 
     
     
    	//printf("le mois est %d",m);
    	//printf("Le nom du fichier est %s",nomfichier);
     
    	return nomfichier;
     
    }


    Cette fonction me renvoie un fichier texte nommé de l'année et du mois en cours. J'en ai donc un par mois et ça m'aidait pour mon programme. J'ai noté ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomfichier[0]='2';//on commence par l'année sinon ça pointera sur rien!

    Pourquoi ça pointerait sur rien? j'ai oublié
    Est il exact de dire que char*nomdufichier() est une fonction de type pointeur pointant sur une chaine de car

    voila j'espere que vous pourrez m'aider pour me faire ces petis rappels, merci

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    c'est un fonction dont le type de retour est pointeur de caractère.

    pour "commencer par l'année" ça doit venir de tes noms de fichier je pense
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,

    Aïe, Aïe, qui t'a appris à formater une chaine de caractères ?

    Vu tes calculs, je suppose que l'année obtenue avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a=chopeAnnee();//récuperation de l'année
    est codée 0 pour année = 1900.
    Et pourquoi ne prendre que le dernier chiffre du mois, et s'embêter avec des tests pour mettre un 0 ou un 1 avant ?

    Un code beaucoup plus propre (même s'il n'est sans doute pas parfait) serait plutôt.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    m=chopeMois();//recuperation du moi
    a=chopeAnnee();//récuperation de l'année;
    ...
    a+=1900; // véritable année
    sprintf(nomfichier,"%4d-%02d.txt",a,m);
    ... // tes printf que tu as mis en commentaire
    return nomfichier;
    D'autre part, tu réserves de la mémoire pour ton pointeur nomfichier, il faut que la fonction appelante pense à libérer cette mémoire, j'espère que tu y a pensé.

    Et pour en venir à ta question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomfichier[0]='2';//on commence par l'année sinon ça pointera sur rien!
    Le commentaire ne signifie rien de spécial, et est même nuisible (la preuve, c'est toi qui l'as écrit, et tu ne sais plus pourquoi): tu as réservé de la place dans le heap, cette mémoire peut contenir n'importe quoi.
    Tu y mets quelque chose de précis, donc pas de problème.

  4. #4
    Membre confirmé
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Par défaut
    je vous remercie de vos réponses

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  2. Besoin du fichier d'aide du SDK DirectX7 (pour DirectDraw)
    Par Magus (Dave) dans le forum DirectX
    Réponses: 5
    Dernier message: 02/10/2002, 13h08
  3. Probleme de raffraichissement
    Par gimlithedwarf dans le forum Composants VCL
    Réponses: 5
    Dernier message: 12/08/2002, 06h31
  4. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05

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