question toute simple d'un nioub en la matiere... =)

question toute simple d'un nioub en la matiere... =) - C - Programmation

Marsh Posté le 21-07-2004 à 16:56:52    

Salut les gens !!
 
Voila une question toute simple qui risque de faire rire certains et pleurer d'autre..  
Je voudrai savoir commen on fait pour afficher une chaine de caractere qu'on a precedemmen saisie ?
voila mon code (fameux non ?)
 

Code :
  1. #include <stdio.h>
  2. int main()
  3. {
  4.   char name;
  5.   printf("hi mec ! Quel est ton nom ?\n" );
  6.   name = getc( stdin );
  7.   printf("ton nom est %c \n", name);
  8.   system("pause" );
  9.   return 0;
  10. }


 
j'ai cherché la reponse a ma question avan de venir quemander de l'aide ms j'y arrive pa ... j'ai cru comprendre qu'il fallai utiliser %s au lieu de %c ms lorsque j'execute le programme et qu'il en arive a cette ligne ca fe planter le programme :/ je suppose ke ca vien du code ...
Jsui un futur etudiant d'une ecole d'informatique (EPITECH) et je souhaite m'avancer sur le programme qu'ils dispensent .. notamen sur leurs 12h de programmation C par jour pendant 1mois... Dc vouala ! Merci les gens !!   :hello:

Reply

Marsh Posté le 21-07-2004 à 16:56:52   

Reply

Marsh Posté le 21-07-2004 à 16:58:24    

t'as déclaté name en tant que caractère, une chaine de caractères (string) c'est char *, tableau de chars.
 
Par contre il faudra changer ta fonction de saisie car (si je me souviens bien) getc sert juste à la saisie de caractères uniques


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 21-07-2004 à 16:59:46    

te fais pas chier avec le C t'en boufferas bien assez en octobre
profite de tes vacances


---------------
\@/
Reply

Marsh Posté le 21-07-2004 à 17:02:55    

arf scuse masklinn G pa compri gd chose a propos du tableau ... :/ ms bon .. merci de m'avoir mi sur la voie =)
 
Lint -> Tu la connai comme ecole ? Si oui es ce ke ce k'on ma di dessus es vrai (genre ta pa un momen de repis et presk pa de vie social ....)

Reply

Marsh Posté le 21-07-2004 à 17:04:44    

char c -> stocke 1 caractère
char c[15] -> tableau de 15 caractères, donc chaîne de 15 caractères max
char * c -> pointeur sur un caractère, en effectuant des allocations mémoires ca sert de chaîne de caractères de longueur variable (ou tout du moins non définie à l'origine)
 
documentes toi sur les chaines de caractère/strings en C


Message édité par masklinn le 21-07-2004 à 17:05:37

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 21-07-2004 à 17:08:00    

sanosuke a écrit :


 
Jsui un futur etudiant d'une ecole d'informatique (EPITECH) et je souhaite m'avancer sur le programme qu'ils dispensent .. notamen sur leurs 12h de programmation C par jour pendant 1mois... Dc vouala ! Merci les gens !!   :hello:


 
Ils t'ont offerts une corde a ton inscription j'espère, pk déjà 6 heures de C dans la semaine çà te gave bien !!!

Reply

Marsh Posté le 21-07-2004 à 17:11:57    

lolofora a écrit :

Ils t'ont offerts une corde a ton inscription j'espère, pk déjà 6 heures de C dans la semaine çà te gave bien !!!


[troll]http://www.mangaclub.ch/urd/ebichuley/avatars/ebichu054.jpg
ca pourrait être pire, ca pourrait être du java[/troll]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 21-07-2004 à 17:19:18    

sanosuke a écrit :

arf scuse masklinn G pa compri gd chose a propos du tableau ... :/ ms bon .. merci de m'avoir mi sur la voie =)
 
Lint -> Tu la connai comme ecole ? Si oui es ce ke ce k'on ma di dessus es vrai (genre ta pa un momen de repis et presk pa de vie social ....)

je sais pas il parait qu'ils se sont calmés sur le programme cette année
m'enfin t'inquiète t'auras quand meme du taf
si tu veux t'occuper pendant tes vacances installe toi une debian  [:chacal_one333] (www.debian.org + http://people.via.ecp.fr/~alexis/f [...] inux.html)


---------------
\@/
Reply

Marsh Posté le 04-08-2004 à 20:35:36    

hey moi ossi je rentre a epitech tu t'appelles comment sanosuke? Moi aussi donc j'apprends le C pendant les vacances avant de devoir affronter la piscine :|( C cool on va pouvoir s'entraider sur ce forum =)) Je voudrais savoir quel bouquin t'as acheté pour le C moi perso g " Le Langage C (Tony Zhang)" de la collection "tout en poche" éditions CampusPress. Je c pas si qqn le connaît j'aimerais savoir si il est bien, si yen a des mieux que les autres et si oui lesquels. On t'en a conseillé un spécial sanosuke?
PS: Euh en ce qui concerne l'EPITECH on m'a dit que c'était minimum 15h/jour pendant la piscine... dc attends-toi a encore un peu plus de taf ke ce que tu imaginais :s ( à mon avis ^^ )

Reply

Marsh Posté le 04-08-2004 à 21:43:34    

« " Le Langage C (Tony Zhang)" de la collection "tout en poche" éditions CampusPress. »
 
 
vomitif. si vous savez pas programmer, tapez vous le "apprendre à programmer avec python" de Swimmen

Reply

Marsh Posté le 04-08-2004 à 21:43:34   

Reply

Marsh Posté le 04-08-2004 à 22:22:48    

Certains ici vont te "mettre sur la voie" en te donnant des semi-infos
Voici ton code rectifié
 

Code :
  1. #include <stdio.h>
  2. int main()
  3. {
  4.   char name[15];
  5. /* Tu as ici un tableau "name" de 15 caractères*/
  6. /* Tu peux stocker 14 caractères significatifs */
  7. /* Le dernier caractère est réservé pour le '\0' final */
  8.   printf("hi mec ! Quel est ton nom ?\n" );
  9.   scanf("%s", name);
  10.   /* Tu fais saisir une chaîne que tu stockes dans "name"
  11.      Je sais, le "scanf %s" va faire hurler "taz" mais le jour où il  
  12.      arrivera à se mettre dans la peau du débutant il aura alors
  13.      certainement un peu évolué !!! */
  14.   printf("ton nom est %s \n", name);
  15.   /* Il faut un "%s" à "printf" pour qu'il sache qu'il s'agit  
  16.      d'une chaîne */
  17.   system("pause" );
  18. /* pause inutile puisque le pgm s'arrête après */
  19.   return 0;
  20. }


 


Message édité par Sve@r le 04-08-2004 à 22:25:24

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 04-08-2004 à 22:24:44    

scanf("%s", name);  
 
 
fgets(name, sizeof name, stdin); :o

Reply

Marsh Posté le 04-08-2004 à 22:27:40    

Taz a écrit :

scanf("%s", name);  
 
 
fgets(name, sizeof name, stdin); :o


 
Et si "name" est déclaré en "char *" (par exemple s'il est alloué dynamiquement avec "malloc" ), sizeof(name) donne "2"
Bravo le pro !!!


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 04-08-2004 à 22:30:21    

déjà je doute que tu aies un processeur 16bits, d'autre part, faut pas me prendre pour un con. Me prends pas la tête avec tes conneries, tu viens de fournir un code pourri et dangereux alors tes considérations à la con dont se fou le débutant qui est a des années-lumières des pointeurs et années lumières ...
surtout que je suis sur que toi meme tu patauge allègrement entre pointeurs et tableau.

Reply

Marsh Posté le 04-08-2004 à 22:30:28    

Sve@r a écrit :

Et si "name" est déclaré en "char *" (par exemple s'il est alloué dynamiquement avec "malloc" ), sizeof(name) donne "2"
Bravo le pro !!!


euh, tu viens de te louper royalement là !!!
dans un tableau alloué statiquement, char[] représente un pointeur sur le 1er caractère, tout comme char * en cas d'allocation dynamique !!


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 04-08-2004 à 22:31:27    

Et un pointeur a une taille de 2 octets !


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 04-08-2004 à 22:31:48    

Sve@r a écrit :

Et si "name" est déclaré en "char *" (par exemple s'il est alloué dynamiquement avec "malloc" ), sizeof(name) donne "2"
Bravo le pro !!!

Les pointeur sont plutôt sur 4 octets je crois. :D
 
Mais en fait sizeof(name) marche bien avec les chaînes allouées dynamiquement ! => Non c'était une blague  :cry: :smiley_du_gars_qui_dit_des_conneries_et_qui_va_se_coucher:


Message édité par darkoli le 04-08-2004 à 22:40:00

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Marsh Posté le 04-08-2004 à 22:33:04    

bon alors on reprendre.
 
- un pointeur a une taille dépendante du système
- sizeof variable mais sizeof(Type)
- ici name est un tableau, y a rien à dire, mon exemple est canonique

Reply

Marsh Posté le 04-08-2004 à 22:34:28    

Sve@r a écrit :

Et un pointeur a une taille de 2 octets !

tu codes en 16 bits toi ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 04-08-2004 à 22:35:31    

Sve@r a écrit :

Et un pointeur a une taille de 2 octets !


 
te laisse pas faire! harko et taz ne sont que deux gros nioubes :o


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 04-08-2004 à 22:39:00    

Mais il a raison... sur unix un ptr a généralement une taille de 4 octets ! J'ai été trop vite sans vérifier
De toute façon Taz est trop vulgaire dans ses réponses. Il a oublié qu'avant d'être aussi connaisseur du langage il a galéré comme les autres !!!


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 04-08-2004 à 22:40:43    

très peux à voir avec le système d'exploitation. en général taille pointeur == taille mot.
 
 
j'ai rien oublié du tout. seulement quand je savais pas, je fermais ma gueule et j'écoutais Musaran

Reply

Marsh Posté le 04-08-2004 à 22:42:33    

lolofora a écrit :

Ils t'ont offerts une corde a ton inscription j'espère, pk déjà 6 heures de C dans la semaine çà te gave bien !!!

J'en fait 35h par semaine au boulot (enfin je ne compte pas les heures supplémentaires) et un peu chez moi et je me porte bien. :D Mais c'est vrai que en faire 12h par jour quand tu n'y connais rien ça doit être horrible. Et c'est sûrement la meilleure façon de dégouter les gens du C.


Message édité par darkoli le 04-08-2004 à 22:43:15

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Marsh Posté le 01-09-2004 à 17:02:05    

[citation=815374,0,23] Mais c'est vrai que en faire 12h par jour quand tu n'y connais rien ça doit être horrible. Et c'est sûrement la meilleure façon de dégouter les gens du C.
[/citation]
je confirme...c tres degoutant quand on connait pas et je fais des erreurs de newbie que je ferais pas avec java (<mode troll on> que c tout bien le java< mode troll off> )...faut dire je dois modifier un logiciel réseau en C et je m'y connais pas en C...j'ai deja posté pour un probleme mais je crois que je v reposter pour un probleme de processus avec la fonction execl...j'aurais bien rechercher sur le forum mais c en maintenance


Message édité par Hurric' le 01-09-2004 à 17:02:52
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed