Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3451 connectés 

  FORUM HardWare.fr
  Programmation

  [c] Ca semble con mais...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c] Ca semble con mais...

n°180797
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 23-07-2002 à 15:16:39  profilanswer
 

Bon, j'ai un truc bizzard, tout con, mais bizzard...
 
Rien de bien sorcier, je génère les heures & minutes ('xx:xx';) dans un tableau à double entrée.
 
Sauf que lorsque je veux le relire, il me sort tout à la suite!!!
donc d'abord :

Code :
  1. int i, j, k=0;
  2. char tcTmp[1440][5];
  3.    for(i=0; i<24; i++)
  4.    {
  5.       for(j=0; j<60; j++)
  6.       {
  7.          if(i<10 && j<10)
  8.             sprintf(tcTmp[k], "0%d:0%d", i, j);
  9.          else if(i<10)
  10.             sprintf(tcTmp[k], "0%d:%d", i, j);
  11.          else if(j<10)
  12.             sprintf(tcTmp[k], "%d:0%d", i, j);
  13.          else
  14.             sprintf(tcTmp[k], "%d:%d", i, j);
  15.          k++;
  16.       }
  17.    }


 
Ensuite tout connement :

Code :
  1. for(i=0; i<1440; i++)
  2. {
  3. printf("Heure n° %d : %s\n", i, tcTmp[i]);
  4.          k++;
  5. }


 
Et bien il me sort tout comme si il ne voyait qu'une seule chaîne:o?!
 
Des suggestions:)?


Message édité par fodger le 23-07-2002 à 15:36:58

---------------
Just drink it!
mood
Publicité
Posté le 23-07-2002 à 15:16:39  profilanswer
 

n°180805
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2002 à 15:22:14  profilanswer
 

normal
 
 

Code :
  1. int i, j, k=0;
  2. char *tcTmp[1440];
  3.   for(i=0; i<24; i++)
  4.   {
  5.      for(j=0; j<60; j++)
  6.      {
  7.        tcTmp[k] = (char*)malloc(sizeof(char)*6);
  8.        sprintf(tcTmp[k++], "%.2d:%.2d", i, j);
  9.      }
  10.   }


Message édité par LetoII le 23-07-2002 à 15:23:01

---------------
Le Tyran
n°180807
chrisbk
-
Posté le 23-07-2002 à 15:22:57  profilanswer
 

ben ouais, normal, t'ecris tjs au meme endroit :O
 
 

Code :
  1. int i, j, k=0;
  2. char tcTmp[1440][5];
  3. int cpt = 0;
  4.   for(i=0; i<24; i++)
  5.   {
  6.      for(j=0; j<60; j++)
  7.      {
  8.         if(i<10 && j<10)
  9.            sprintf(tcTmp[cpt], "0%d:0%d", i, j);
  10.         else if(i<10)
  11.            sprintf(tcTmp[cpt], "0%d:%d", i, j);
  12.         else if(j<10)
  13.            sprintf(tcTmp[cpt], "%d:0%d", i, j);
  14.         else
  15.            sprintf(tcTmp[cpt], "%d:%d", i, j);
  16. cpt ++;
  17.      }
  18.   }


Message édité par chrisbk le 23-07-2002 à 15:23:20
n°180808
chrisbk
-
Posté le 23-07-2002 à 15:24:01  profilanswer
 

letoII a écrit a écrit :

normal
 
 

Code :
  1. int i, j, k=0;
  2. char *tcTmp[1440];
  3.   for(i=0; i<24; i++)
  4.   {
  5.      for(j=0; j<60; j++)
  6.      {
  7.        tcTmp[k] = (char*)malloc(sizeof(char)*6);
  8.        sprintf(tcTmp[k++], "%.2d:%.2d", i, j);
  9.      }
  10.   }






 
j'ai horreur de ca [:ddr555]

n°180810
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2002 à 15:26:14  profilanswer
 

chrisbk a écrit a écrit :

 
 
j'ai horreur de ca [:ddr555]




 
Moi j'adore :D
Je sais que certain ont du mal à le lire, mais ça fait trop longtemps que je l'utilise ça vient naturellement maintenent :ange:


---------------
Le Tyran
n°180818
chrisbk
-
Posté le 23-07-2002 à 15:32:44  profilanswer
 

letoII a écrit a écrit :

 
 
Moi j'adore :D
Je sais que certain ont du mal à le lire, mais ça fait trop longtemps que je l'utilise ça vient naturellement maintenent :ange:  




 
je sais jamais si ca se fait apres ou avant :D C'est comme l'operateur ternaire, je peux pas le voir en peinture celui la :D

n°180823
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2002 à 15:38:40  profilanswer
 

Mais si c simple: a = k++; => a = k; k += 1;
                  a = ++k; => k += 1; a = k;
 
Là où c chaud c: a = --k++; :D


---------------
Le Tyran
n°180824
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 23-07-2002 à 15:39:56  profilanswer
 

J'avais mal écrit, j'ai rectifié!  
Evidemment je n'écris pas au même endroit... par ailleurs la lecture se faisait dans la même fonction.  
 
Par ailleurs l'utilisation du malloc n'est pas requise puisque qu'il s'agit d'un tableau double, et non d'un pointeur double.
 
Donc une autre remarque?


---------------
Just drink it!
n°180827
chrisbk
-
Posté le 23-07-2002 à 15:42:19  profilanswer
 

Fodger a écrit a écrit :

J'avais mal écrit, j'ai rectifié!  
Evidemment je n'écris pas au même endroit... par ailleurs la lecture se faisait dans la même fonction.  
 
Par ailleurs l'utilisation du malloc n'est pas requise puisque qu'il s'agit d'un tableau double, et non d'un pointeur double.
 
Donc une autre remarque?




 
ouaip, rebalance nous le code exact

n°180832
chrisbk
-
Posté le 23-07-2002 à 15:45:32  profilanswer
 

letoII a écrit a écrit :

Mais si c simple: a = k++; => a = k; k += 1;
                  a = ++k; => k += 1; a = k;
 
Là où c chaud c: a = --k++; :D




 
 
fo etre fou pour ecrire des trucs comme ca :O

mood
Publicité
Posté le 23-07-2002 à 15:45:32  profilanswer
 

n°180837
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2002 à 15:54:19  profilanswer
 

Non, j'ai du le faire une fois... juste pour voir ce que ça faisait :D


---------------
Le Tyran
n°180839
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2002 à 15:55:03  profilanswer
 

Si tu veux pas faire de malloc, met 6 comme taille de chaîne, marchera beaucoup mieux


---------------
Le Tyran
n°180850
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 23-07-2002 à 16:04:58  profilanswer
 

letoII a écrit a écrit :

Si tu veux pas faire de malloc, met 6 comme taille de chaîne, marchera beaucoup mieux




 
à cause du '\0'?


---------------
Just drink it!
n°180853
chrisbk
-
Posté le 23-07-2002 à 16:09:03  profilanswer
 

yes it is

n°180873
darkoli
Le Petit Dinosaure Bleu
Posté le 23-07-2002 à 16:16:03  profilanswer
 

Fodger a écrit a écrit :

J'avais mal écrit, j'ai rectifié!  
Evidemment je n'écris pas au même endroit... par ailleurs la lecture se faisait dans la même fonction.  
 
Par ailleurs l'utilisation du malloc n'est pas requise puisque qu'il s'agit d'un tableau double, et non d'un pointeur double.
 
Donc une autre remarque?




 
Le problème c'est le '\0' !!! C'est lui qui indique la fin de la chaîne ...
 
Si tu écris uniquement la 1° danss le tableau et que tu l'affiches ça marche.
 
Maintenant écrit la deuxième et affiche la 1° puis la 2° et là tu vas comprendre que le '\0' de la premiere chaine (qui se trouve en réalité à la position [1][0] est écrasé lors de l'écriture de la 2° chaîne !!!
 
Ps : pour simplifier la génération de ta chaîne :

Code :
  1. char tcTmp[1440][5 + 1]; /* 1440 chaînes de 5 caractères */
  2. [...]
  3. sprintf(tcTmp[k], "%02d;%02d", i , j); /* écriture d'un nombre sur 2 chiffres et remplissage par des '0' pour les positions non utilisées */


Message édité par darkoli le 23-07-2002 à 16:17:24

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°180878
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2002 à 16:20:58  profilanswer
 

Fodger a écrit a écrit :

 
 
à cause du '\0'?




 
Tout à fait. J'ai pas osé être aussi explicite (penssant que ct une faute de frape son 5 :D)


---------------
Le Tyran
n°180879
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 23-07-2002 à 16:21:13  profilanswer
 

ouais à tous les coups c'est ça, le genre d'inatention qui coûte cher:D... parce qu'à l'affichage le tableau était considéré comme une chaîne de caractères unique. merci ;).


---------------
Just drink it!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [c] Ca semble con mais...

 

Sujets relatifs
MySQL La requette ne fonctionne pas...Elle semble correcte.....Ca semble con mais...
[php] Petit probleme ki semble tt con ms j'y arrive pas !!!! help ![php] blem de je sais pas trop koi :( de longueur il me semble ...
Plus de sujets relatifs à : [c] Ca semble con mais...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)