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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Auteur Sujet :

declaration

n°519654
kadreg
profil: Utilisateur
Posté le 21-09-2003 à 16:41:26  profilanswer
 

Reprise du message précédent :

Taz a écrit :

non. c'est la stricte définition. si tu enseignes à des étudiants que les pointeurs, c'est du passage par adresse, ils n'y comprendront __jamais__ rien.


 
Je plussettes :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
mood
Publicité
Posté le 21-09-2003 à 16:41:26  profilanswer
 

n°520687
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 22-09-2003 à 21:28:13  profilanswer
 

bon j'ai un probleme avec mon prog,j'ai le prog qui "ignore" mes scanf, vous voyez pas pourquoi? :??:
 
c'est dans cette partie:

Code :
  1. case 1:
  2.         nb_reunion++;
  3.         if(nb_reunion>31)
  4.         puts("il ne peut pas avoir plus de 31 reunions" );
  5.         else
  6.         {
  7.         puts("---saisie des données---" );
  8.         puts("nom de l'administration" );
  9.         scanf("%c",&planing[nb_reunion].nom_admin);
  10.         puts("objectif" );
  11.         scanf("%c",&planing[nb_reunion].objectif);
  12.         puts("note" );
  13.         scanf("%i",&planing[nb_reunion].note);
  14.         puts("date(jour)" );
  15.         scanf("%i",&planing[nb_reunion].dt_reunion.jour);
  16.         puts("mois" );
  17.         scanf("%i",&planing[nb_reunion].dt_reunion.mois);
  18.         puts("heure" );
  19.         scanf("%c",&planing[nb_reunion].horaire.h);
  20.         puts(" min" );
  21.         scanf("%i",&planing[nb_reunion].horaire.min);
  22.         }
  23.         break;


 
voici le code en entier:
 

Code :
  1. # include <stdio.h>
  2. int affichage(j)
  3. {
  4. printf("coucou: %i\n",j);
  5. }
  6. main()
  7. {
  8.     int max=31;
  9.     int choix,i,j,nb_reunion,select,nt,cpt;
  10.     int permut,trouve;
  11.     typedef struct heure
  12.     {
  13.         int h;
  14.         int min;
  15.     }heure;
  16.     typedef struct date
  17.     {
  18.         int jour;
  19.         char mois;
  20.     }date;
  21.     typedef struct reunion
  22.     {
  23.         date dt_reunion;
  24.         heure horaire;
  25.         char objectif;
  26.         char nom_admin;
  27.         int note;
  28.     }reunion;
  29.     typedef struct importance
  30.     {
  31.          int num,note;
  32.     }importance;
  33.     reunion temp,planing[max];
  34.     importance temp_index,index[max];
  35.     date dt_reunion;
  36.     char nom_admin;
  37.     nb_reunion=0;
  38.    
  39.     do{
  40.     puts("####################################" );
  41.     puts("###### gestion des reunions ########" );
  42.     puts("####################################\n" );
  43.    
  44.     puts("1: inserer un nouvelle reunion" );
  45.     puts("2: consulter une reunion par la date" );
  46.     puts("3: supprimer une reunion" );
  47.     puts("4: modifier les données d'une reunion" );
  48.     puts("5: afficher les données des reunions" );
  49.     puts("6: liste des reunions les plus imoortantes du mois " );
  50.     puts("7: trier les la reunion par date" );
  51.     puts("8: trier la reunion par note" );
  52.     puts("9: classer la reunion par objectif" );
  53.     puts("10: lister les reunions d'une administration donné" );
  54.     puts("11: construire le tableau d'importance" );
  55.     puts("0: quitter" );
  56.     puts("donnez votre choix:" );
  57.     scanf("%i",&choix);
  58.    
  59.         switch(choix)
  60.     {
  61.         case 1:
  62.         nb_reunion++;
  63.         if(nb_reunion>31)
  64.         puts("il ne peut pas avoir plus de 31 reunions" );
  65.         else
  66.         {
  67.         puts("---saisie des données---" );
  68.         puts("nom de l'administration" );
  69.         scanf("%c",&planing[nb_reunion].nom_admin);
  70.         puts("objectif" );
  71.         scanf("%c",&planing[nb_reunion].objectif);
  72.         puts("note" );
  73.         scanf("%i",&planing[nb_reunion].note);
  74.         puts("date(jour)" );
  75.         scanf("%i",&planing[nb_reunion].dt_reunion.jour);
  76.         puts("mois" );
  77.         scanf("%i",&planing[nb_reunion].dt_reunion.mois);
  78.         puts("heure" );
  79.         scanf("%c",&planing[nb_reunion].horaire.h);
  80.         puts(" min" );
  81.         scanf("%i",&planing[nb_reunion].horaire.min);
  82.         }
  83.         break;
  84.        
  85.         case 4:
  86.         puts("modification" );
  87.         puts("Donnez un jour" );
  88.         scanf("%i",&dt_reunion.jour);
  89.         puts("Donnez un mois" );
  90.         scanf("%i",&dt_reunion.mois);
  91.         i=1;
  92.         while((dt_reunion.jour!=planing[i].dt_reunion.jour) && (dt_reunion.mois!=planing[i].dt_reunion.mois) && (i<=nb_reunion))
  93.         i++;
  94.         if(i>nb_reunion)
  95.         puts("il n'y a pas de réunion a cette date\n\n" );
  96.         else
  97.         do{
  98.                 puts("1: modifier admin" );
  99.                 puts("2: modif objectif" );
  100.                 puts("3: modif note" );
  101.                 puts("4: modif date" );
  102.                 puts("5: modif heure" );
  103.                 puts("0: sortie" );
  104.                 puts("votre choix" );
  105.                 scanf("%i",&select);
  106.                
  107.                 switch(select)
  108.                 {
  109.                      case 1:
  110.                      puts("nouvel admin" );
  111.                      scanf("%c",&planing[i].nom_admin);
  112.                      break;
  113.                      case 2:
  114.                      puts("nv objectif" );
  115.                      scanf("%c",&planing[i].objectif);
  116.                      break;
  117.                      case 3:
  118.                      puts("nouvelle note" );
  119.                      scanf("%c",&planing[i].note);
  120.                      break;                   
  121.                      case 4:
  122.                      puts("nouvelle journée" );
  123.                      scanf("%c",&planing[i].dt_reunion.jour);
  124.                      puts("nouveau mois" );
  125.                      scanf("%c",&planing[i].dt_reunion.mois);
  126.                      break;
  127.                      case 5:
  128.                      puts("nouvelle heure" );
  129.                      scanf("%c",&planing[i].horaire.h);
  130.                      puts("nouvelle min" );
  131.                      scanf("%c",&planing[i].horaire.min);
  132.                      break;                                                                   
  133.                      case 0:
  134.                      puts("exit" );
  135.                      break;
  136.                      default:
  137.                      puts("erreur" );
  138.                      break;             
  139.                 }
  140.                
  141.                
  142.         }while(select!=0);
  143.        
  144.         break;
  145.        
  146.         case 5:
  147.         puts("affichage global" );
  148.        
  149.         for(i=0;i<nb_reunion;i++)
  150.         {
  151.         printf("l'administration :%c",&planing[i].nom_admin);
  152.         printf("objectif :%c",&planing[i].objectif);
  153.         printf("note :%i",&planing[i].note);
  154.         printf("date :%i",&planing[i].dt_reunion.jour,&planing[i].dt_reunion.mois);
  155.         printf("heure :%i",&planing[i].horaire.h,&planing[i].horaire.min);
  156.         }
  157.         break;
  158.        
  159.         case 6:
  160.         puts("donnez la note d'importance:" );
  161.         scanf("%i",&nt);
  162.         for(i=0;i<nb_reunion;i++)
  163.         {
  164.         if(planing[i].note>=nt)
  165.         printf("%i",&i);
  166.         }
  167.         break;
  168.         default :
  169.         puts("default" );
  170.         printf("%i",choix);
  171.         getchar();
  172.         break;
  173.        
  174.         case 7:
  175.         puts("tri par date" );
  176.         for(i=1;i<=nb_reunion-1;i++)
  177.         {
  178.          for (j=i+1;j<=nb_reunion;i++)
  179.          {
  180.          if((planing[i].dt_reunion.mois>planing[j].dt_reunion.mois) ||
  181.             (planing[i].dt_reunion.mois=planing[j].dt_reunion.mois && planing[i].dt_reunion.jour>planing[j].dt_reunion.jour))
  182.             {
  183.             temp=planing[i];
  184.             planing[i]=planing[j];
  185.             planing[j]=temp;
  186.             }
  187.          }
  188.         }
  189.         for(i=1;i<=nb_reunion;i++)
  190.         {
  191.         affichage(i);
  192.         }
  193.         break;
  194.        
  195.         case 8:
  196.         puts("tri par note" );
  197.        
  198.         do{
  199.              permut=0;
  200.              for(i=1;i<=nb_reunion;i++)
  201.              {
  202.                 if(planing[i].note>planing[i+1].note)
  203.                 {
  204.                      temp=planing[i];
  205.                      planing[i]=planing[i+1];
  206.                      planing[i+1]=temp;
  207.                      permut=1;
  208.                 }
  209.              }
  210.        
  211.        
  212.           }while(permut!=0);
  213.        
  214.        
  215.         break;
  216.        
  217.         case 9:
  218.         puts("classement par objectif" );
  219.         for(i=1;i<nb_reunion;i++)
  220.         {
  221.             trouve=0;
  222.             j=1;
  223.             while(j<i && trouve==0)
  224.             {
  225.                 if(planing[j].objectif==planing[i].objectif)
  226.                 {
  227.                 trouve=1;
  228.                 j++;
  229.                 }
  230.             }
  231.             if(trouve==0)
  232.             {
  233.                 printf("objectif:",planing[i].objectif);
  234.                 for(j=1;j<=nb_reunion;j++)
  235.                 {
  236.                 affichage(j);
  237.                 }
  238.             }
  239.            
  240.         }
  241.        
  242.         break;
  243.        
  244.         case 10:
  245.         puts("donner nom administration:" );
  246.         scanf("%c", &nom_admin);
  247.         trouve=0;
  248.         cpt=0;
  249.         for(i=1;i<nb_reunion;i++)
  250.         {
  251.             if(planing[i].nom_admin==nom_admin)
  252.             {
  253.                 affichage(i);
  254.                 trouve=1;
  255.                 cpt++;
  256.             }
  257.         }
  258.        
  259.         if(trouve=1)
  260.         printf("il y a %i",cpt,"reunion" );
  261.         else
  262.         puts("aucune reunion correspondante" );
  263.         break;
  264.        
  265.         case 11:
  266.         puts("construction du tableau d'importance" );
  267.        
  268.         do{
  269.         permut=0;
  270.         for(i=1;i<nb_reunion;i++)
  271.         {
  272.             if(index[i].note<index[i+1].note)
  273.             {
  274.             temp_index=index[i];
  275.             index[i]=index[i+1];
  276.             index[i+1]=temp_index;
  277.             permut=1;
  278.             }
  279.         }
  280.         }while(permut!=0);
  281.         for(i=1;i<nb_reunion;i++)
  282.         {
  283.         printf("importance", &index[i]);
  284.         }
  285.        
  286.         break;
  287.      
  288.        
  289.        
  290.    }
  291.  
  292.     }while(choix!=0);
  293.     getchar();
  294.  
  295. }


---------------
lecteur mp3 yvele's smilies jeux de fille
n°520690
Taz
bisounours-codeur
Posté le 22-09-2003 à 21:31:38  profilanswer
 

1) regarder le retour de scanf
2) si le printf avant le scanf ne se termine pas par un "\n", faire un fflush(stdout)
3) faire gaffe à l'utilisation de scanf, on se retrouve vite avec n'importe quoi dans le buffer de stdin

n°520694
antp
Champion des excuses bidons
Posté le 22-09-2003 à 21:32:50  profilanswer
 

Taz a écrit :

on se retrouve vite avec n'importe quoi dans le buffer de stdin


 
un bon fflush(stdin) et c'est bon [:dawa]
 
PS: pour les autres à ne pas faire hein :o


Message édité par antp le 22-09-2003 à 21:32:59

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520704
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 22-09-2003 à 21:40:38  profilanswer
 

j'ai mis des printf au lieu de gets et ca  a l'air de marcher mieux,il n'y a que pour le nom de l'administration que ca s'arrete pas :/
 

Code :
  1. case 1:
  2.         nb_reunion++;
  3.         if(nb_reunion>31)
  4.         puts("il ne peut pas avoir plus de 31 reunions" );
  5.         else
  6.         {
  7.         printf("---saisie des données---\n" );
  8.         printf("nom de l'administration\n" );
  9.         scanf("%c",&planing[nb_reunion].nom_admin);
  10.         printf("objectif\n" );
  11.         scanf("%c",&planing[nb_reunion].objectif);
  12.         printf("note\n" );
  13.         scanf("%i",&planing[nb_reunion].note);
  14.         printf("date(jour)\n" );
  15.         scanf("%i",&planing[nb_reunion].dt_reunion.jour);
  16.         printf("mois\n" );
  17.         scanf("%i",&planing[nb_reunion].dt_reunion.mois);
  18.         printf("heure\n" );
  19.         scanf("%i",&planing[nb_reunion].horaire.h);
  20.         printf(" min\n" );
  21.         scanf("%i",&planing[nb_reunion].horaire.min);
  22.         }
  23.         break;


---------------
lecteur mp3 yvele's smilies jeux de fille
n°520709
Taz
bisounours-codeur
Posté le 22-09-2003 à 21:44:08  profilanswer
 

-- ne jamais utiliser gets --
si débutant -- ne jamais utiliser scanf et %s --

n°520710
antp
Champion des excuses bidons
Posté le 22-09-2003 à 21:44:25  profilanswer
 

tiens pourquoi tu fais un scanf %c ? :??: c'est pour lire une chaîne ?
 
edit: le mieux c'est fgets il me semble


Message édité par antp le 22-09-2003 à 21:44:57

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520712
chrisbk
-
Posté le 22-09-2003 à 21:44:54  profilanswer
 

%c = un caractere

n°520714
antp
Champion des excuses bidons
Posté le 22-09-2003 à 21:45:13  profilanswer
 

ouais mais ici c'est pour une chaîne, non ? :??:
 
edit: ha non c'est une variable char, j'ai rien dit alors :o


Message édité par antp le 22-09-2003 à 21:45:42

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520716
Taz
bisounours-codeur
Posté le 22-09-2003 à 21:45:22  profilanswer
 

effectivement le char nom_admin; je le sens pas là

mood
Publicité
Posté le 22-09-2003 à 21:45:22  profilanswer
 

n°520726
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 22-09-2003 à 21:48:00  profilanswer
 

Taz a écrit :

-- ne jamais utiliser gets --
si débutant -- ne jamais utiliser scanf et %s --

t'es en train de me dire de n'utiliser aucun de ces deux truc? :??:


---------------
lecteur mp3 yvele's smilies jeux de fille
n°520730
chrisbk
-
Posté le 22-09-2003 à 21:48:50  profilanswer
 

forummp3 a écrit :

t'es en train de me dire de n'utiliser aucun de ces deux truc? :??:


 
fgets(stdin)

n°520731
antp
Champion des excuses bidons
Posté le 22-09-2003 à 21:49:06  profilanswer
 

forummp3 a écrit :

t'es en train de me dire de n'utiliser aucun de ces deux truc? :??:


 
Dis d'abord si tu veux lire juste un caractère ou toute une chaîne :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520734
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 22-09-2003 à 21:49:48  profilanswer
 

antp a écrit :

tiens pourquoi tu fais un scanf %c ? :??: c'est pour lire une chaîne ?
 
edit: le mieux c'est fgets il me semble

ha merde,jeme trompe tout le temps :D
 
ca venais de la le probleme :jap:
 
en fait quand je tape un truc qui ne corespond pas au type,ca m'ignore les scanf  suivant :/


---------------
lecteur mp3 yvele's smilies jeux de fille
n°520737
antp
Champion des excuses bidons
Posté le 22-09-2003 à 21:51:32  profilanswer
 

une variable-chaîne c'est pas juste char hein :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520738
chrisbk
-
Posté le 22-09-2003 à 21:51:33  profilanswer
 

fais un parser flex/yacc et t'auras pu ce genre de pb [:aloy]

n°520743
Taz
bisounours-codeur
Posté le 22-09-2003 à 21:53:39  profilanswer
 

forummp3 a écrit :

ha merde,jeme trompe tout le temps :D
 
ca venais de la le probleme :jap:
 
en fait quand je tape un truc qui ne corespond pas au type,ca m'ignore les scanf  suivant :/

voir remarques précédentes

n°520759
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 22-09-2003 à 22:11:24  profilanswer
 

antp a écrit :

une variable-chaîne c'est pas juste char hein :o

c'est a dire ?


---------------
lecteur mp3 yvele's smilies jeux de fille
n°520760
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 22-09-2003 à 22:12:32  profilanswer
 

chrisbk a écrit :

fais un parser flex/yacc et t'auras pu ce genre de pb [:aloy]

et ca s'utilise comment ca?  :??:


---------------
lecteur mp3 yvele's smilies jeux de fille
n°520765
kadreg
profil: Utilisateur
Posté le 22-09-2003 à 22:15:56  profilanswer
 

forummp3 a écrit :

et ca s'utilise comment ca?  :??:  


 
Comme on peut [:spamafote]
 


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°520827
antp
Champion des excuses bidons
Posté le 22-09-2003 à 23:35:34  profilanswer
 

forummp3 a écrit :

c'est a dire ?


 
DISCLAIMER : Taz, je simplifie, je sais que c'est pas spécialement ça sur toutes les plateformes, que ce qui suit c'est pas très juste, bla bla bla
 
char = 8 bits, donc un octet, signé, donc nombre de -128 à +127, ou un caractère ASCII étendu.
 
chaîne = ensemble de caractère. En C il n'y a pas de chaînes. On utiliser alors un pointeur vers une zone contenant des caractères (char), le dernier étant un octet à 0 ('\0'). Et le pointeur en question est un char * qu'il faut donc allouer. Tu peux aussi utiliser un tableau de taille fixe : char chaine[10] (9 caractères + un zéro de fin).
Une autre solution serait d'ouvrir un bouquin de C :o


Message édité par antp le 22-09-2003 à 23:49:44

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520829
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 22-09-2003 à 23:36:48  profilanswer
 

j'ai encore un probleme bizzare:
aprés un scanf j'ai un espace qui apparait devant la valeur de la variable  :heink:  
 
vous voyez pas d'ou ca viens?  
 

Code :
  1. case 10:
  2.         printf("nom de l'administration\n" );
  3.         scanf("%s",nom_admin);//ici que je saisis ma valeur
  4.         trouve=0;
  5.         cpt=0;
  6.         for(i=1;i<=nb_reunion;i++)
  7.         {
  8.             if(planing[i].nom_admin==nom_admin)
  9.             {
  10.                 affichage(i);
  11.                 trouve=1;
  12.                 cpt++;
  13.             }
  14.             printf("%s\n ", planing[i].nom_admin);
  15.             printf("%s\n", &nom_admin);//lorsque j'affiche ca,j'ai un espace devant la valeur que j'ai rentré
  16.         }
  17.        
  18.         if(trouve==1)
  19.         printf("il y a %i",cpt,"reunion" );
  20.         else
  21.         puts("aucune reunion correspondante" );
  22.         break;


Message édité par forummp3 le 22-09-2003 à 23:37:19

---------------
lecteur mp3 yvele's smilies jeux de fille
n°520836
antp
Champion des excuses bidons
Posté le 22-09-2003 à 23:45:05  profilanswer
 

scanf %s s'arrête sur les espaces, c'est pas pour rien qu'on t'a dit d'utiliser fgets :o
 
et ta variable nom_admin elle est déclarée & initialisée comment ?


Message édité par antp le 22-09-2003 à 23:45:33

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520844
SquiZZ
Posté le 22-09-2003 à 23:48:47  profilanswer
 

antp a écrit :


 
char = 8 octets


 
8 bits [:aloy], et en simplifiant légèrement [:aloy]


Message édité par SquiZZ le 22-09-2003 à 23:49:34
n°520845
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 22-09-2003 à 23:49:08  profilanswer
 

antp a écrit :

scanf %s s'arrête sur les espaces, c'est pas pour rien qu'on t'a dit d'utiliser fgets :o
 
et ta variable nom_admin elle est déclarée & initialisée comment ?

char nom_admin[20];
 
fgets je sais pas comment l'utiliser [:spamafote]


---------------
lecteur mp3 yvele's smilies jeux de fille
n°520847
antp
Champion des excuses bidons
Posté le 22-09-2003 à 23:49:31  profilanswer
 
n°520850
antp
Champion des excuses bidons
Posté le 22-09-2003 à 23:51:30  profilanswer
 

forummp3 a écrit :


fgets je sais pas comment l'utiliser [:spamafote]


T'as oublié d'installer la doc avec ton compilo ?
J'ai pas la doc ni un compilo sur mon PC ici à la maison, mais les params sont : stdin (si tu lis sur stdin évidemment), nom_admin, sizeof(nom_admin)
À remettre dans l'ordre.
Et je sais plus si la taille qu'on lui donne compte le 0 ou pas (donc -1 éventuel).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520855
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 22-09-2003 à 23:58:30  profilanswer
 

antp a écrit :


T'as oublié d'installer la doc avec ton compilo ?
J'ai pas la doc ni un compilo sur mon PC ici à la maison, mais les params sont : stdin (si tu lis sur stdin évidemment), nom_admin, sizeof(nom_admin)
À remettre dans l'ordre.
Et je sais plus si la taille qu'on lui donne compte le 0 ou pas (donc -1 éventuel).

ca ma l'air un peu complexe :D


---------------
lecteur mp3 yvele's smilies jeux de fille
n°520965
Taz
bisounours-codeur
Posté le 23-09-2003 à 08:19:48  profilanswer
 

Citation :

char = 8 bits, donc un octet, signé, donc nombre de -128 à +127, ou un caractère ASCII étendu.


char = CHAR_BIT bits, 8 bits minimum, donc pas forcément un octet, signé ou pas, un char est garanti CHAR_MIN <= c <= CHAR_MAX, donc en fonction du signe 0 <= c <= 255 ou -127 <= c <= 127


Message édité par Taz le 23-09-2003 à 08:20:11
n°521043
antp
Champion des excuses bidons
Posté le 23-09-2003 à 10:04:01  profilanswer
 

heureusement que j'avais mis un disclaimer [:kiki]
 
pq -127 au fait ? :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°521074
noldor
Rockn'roll
Posté le 23-09-2003 à 10:26:06  profilanswer
 

Taz a écrit :

Citation :

char = 8 bits, donc un octet, signé, donc nombre de -128 à +127, ou un caractère ASCII étendu.


char = CHAR_BIT bits, 8 bits minimum, donc pas forcément un octet, signé ou pas, un char est garanti CHAR_MIN <= c <= CHAR_MAX, donc en fonction du signe 0 <= c <= 255 ou -127 <= c <= 127

un vrai robot


---------------
http://runnerstats.net
n°521087
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 23-09-2003 à 10:36:20  profilanswer
 

Taz a écrit :

Citation :

char = 8 bits, donc un octet, signé, donc nombre de -128 à +127, ou un caractère ASCII étendu.


char = CHAR_BIT bits, 8 bits minimum, donc pas forcément un octet, signé ou pas, un char est garanti CHAR_MIN <= c <= CHAR_MAX, donc en fonction du signe 0 <= c <= 255 ou -127 <= c <= 127


 
 
8 bits a toujours représenté 1 octet bonhomme, et en C un char est TOUJOURS codé sur 8 bits histoire de coller avec le code ascii, bien venu dans le monde de l'info:D...

n°521088
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 23-09-2003 à 10:37:05  profilanswer
 

antp a écrit :

heureusement que j'avais mis un disclaimer [:kiki]
 
pq -127 au fait ? :??:


 
parce que 2^8 = 256 mais il ne faut pas oublier le 0...


Message édité par fodger le 23-09-2003 à 10:37:14
n°521092
noldor
Rockn'roll
Posté le 23-09-2003 à 11:10:12  profilanswer
 

Fodger a écrit :


 
parce que 2^8 = 256 mais il ne faut pas oublier le 0...

comme il l'a marqué, ça fait 255


---------------
http://runnerstats.net
n°521132
antp
Champion des excuses bidons
Posté le 23-09-2003 à 11:52:01  profilanswer
 

Fodger a écrit :


 
parce que 2^8 = 256 mais il ne faut pas oublier le 0...


 
-0 et +0 tu les stockes différement ? :??:
 
dans C++Builder le char va de -128 à +127, avec un 0 entre les deux, ce qui fait 256 possibilités


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°521150
Taz
bisounours-codeur
Posté le 23-09-2003 à 12:04:52  profilanswer
 

Fodger a écrit :


 
 
8 bits a toujours représenté 1 octet bonhomme, et en C un char est TOUJOURS codé sur 8 bits histoire de coller avec le code ascii, bien venu dans le monde de l'info:D...  

j'ai dit minimum, donc ça peut etre plus qu'un octet, ton TOUJOURS, c'est FAUX,etc, etc ... aurevoir à toi

n°521151
Taz
bisounours-codeur
Posté le 23-09-2003 à 12:05:26  profilanswer
 

antp a écrit :


 
-0 et +0 tu les stockes différement ? :??:
 
dans C++Builder le char va de -128 à +127, avec un 0 entre les deux, ce qui fait 256 possibilités

complément à 1 par exemple, ou implémentation avec bit de signe simple, etc

n°530281
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 03-10-2003 à 13:52:31  profilanswer
 

Taz a écrit :

j'ai dit minimum, donc ça peut etre plus qu'un octet, ton TOUJOURS, c'est FAUX,etc, etc ... aurevoir à toi


 
c'est toujours vrai en ansi c... je n'ai pas dit qu'il n'était pas possible de redéfinir le type... mais ça reste à coup sûr EXTRÊMENT RARE! D'autant que l'intérêt serait très limité.

n°530303
Moktar1er
No one replies...
Posté le 03-10-2003 à 14:36:05  profilanswer
 

forummp3 a écrit :

j'ai encore un probleme bizzare:
aprés un scanf j'ai un espace qui apparait devant la valeur de la variable  :heink:  
 
vous voyez pas d'ou ca viens?  
 

Code :
  1. case 10:
  2.         printf("nom de l'administration\n" );
  3.         scanf("%s",nom_admin);//ici que je saisis ma valeur
  4.         trouve=0;
  5.         cpt=0;
  6.         for(i=1;i<=nb_reunion;i++)
  7.         {
  8.             if(planing[i].nom_admin==nom_admin)
  9.             {
  10.                 affichage(i);
  11.                 trouve=1;
  12.                 cpt++;
  13.             }
  14.             printf("%s\n ", planing[i].nom_admin);
  15.             printf("%s\n", &nom_admin);//lorsque j'affiche ca,j'ai un espace devant la valeur que j'ai rentré
  16.         }
  17.        
  18.         if(trouve==1)
  19.         printf("il y a %i",cpt,"reunion" );
  20.         else
  21.         puts("aucune reunion correspondante" );
  22.         break;




 
euh ... son printf("%s\n", &nom_admin) me choque...
surtout le &...
enfin en même temps, moi je dis ça ... je dis rien hein ...

n°530487
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 03-10-2003 à 17:32:20  profilanswer
 

moktar1er a écrit :


 
euh ... son printf("%s\n", &nom_admin) me choque...
surtout le &...
enfin en même temps, moi je dis ça ... je dis rien hein ...

c bon,j'avais corriger cela.


---------------
lecteur mp3 yvele's smilies jeux de fille
n°530494
Taz
bisounours-codeur
Posté le 03-10-2003 à 17:46:47  profilanswer
 

Fodger a écrit :


 
c'est toujours vrai en ansi c... je n'ai pas dit qu'il n'était pas possible de redéfinir le type... mais ça reste à coup sûr EXTRÊMENT RARE! D'autant que l'intérêt serait très limité.

on te dit que non

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4

Aller à :
Ajouter une réponse
 

Sujets relatifs
déclaration d'un template[C] Initialisation un peu spéciale d'une chaine à la déclaration
Declaration de From2 comme objet de Form1[C++ / VC++] Gros probleme de déclaration de classes :(
[vba/access] Problème de déclaration avec dim...déclaration de taille de tableau en C
Déclaration de structure...Séparer la définition et déclaration d'une classe? (gcc) [résolu]
[PERL] declaration d'une globale[C] Declaration cyclique et fichiers .h > JE VAIS DEVENIR FOU
Plus de sujets relatifs à : declaration


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