deux trois questions de newbie... [ C ] - Programmation
Marsh Posté le 23-03-2002 à 19:46:04
1) oui, par un timer. tu ne précises pas ton os, sous windows tu peux créer une fenêtre et attendre un message WM_TIMER.
2) peut-être, le mieux est de commencer à regarder comment marche l'interface graphique (mfc & co sous windows).
3) oui, c'est possible avec system & co. le plus simple est d'utiliser les fonctions déjà dispos pour les fichiers : fread(), fwrite(), fprintf(), fclose().
Marsh Posté le 23-03-2002 à 19:53:19
1. C'est la fonction sleep(X);
2. Il suffit de faire printf("Entrez 2 nombres : " ); sans le \n, qui fait passer à la ligne.
3. Ou comment écraser une mouche avec un marteau... Tu ouvres le fichier, tu écris dedans, tu le fermes.
Au passage, je te conseille d'ouvrir un livre de C, ou de lire une doc (comme ftp://ftp.imag.fr/pub/DOC.UNIX/C/ [...] NSI_C.html par exemple) avant d'aller plus loin, parce que là...
Marsh Posté le 23-03-2002 à 20:08:21
1. C'est la fonction sleep(X);
thanks
2. Il suffit de faire printf("Entrez 2 nombres : " ); sans le \n, qui fait passer à la ligne.
dès que j'écris qqch, et que j'appuye sur entrée pour valider, le prochain texte affiché sera retourné à la ligne
3. Ou comment écraser une mouche avec un marteau... Tu ouvres le fichier, tu écris dedans, tu le fermes.
imagine que j'ai un fichier txt avec 10 noms à l'intérieur. il me faut le 5ième, je fais comment ? il me semble que les fonctions de "edit" sont assez limitées...
Au passage, je te conseille d'ouvrir un livre de C, ou de lire une doc (comme ftp://ftp.imag.fr/pub/DOC.UNIX/C/ [...] NSI_C.html par exemple) avant d'aller plus loin, parce que là...
je suis en formation d'ingé, le cours d'info est un "petit" cours et je suis débutant ; en faisant ça j'en fait plus que ce qu'on nous demande, et je suis 1er de la promo pour le moment, donc me prend pas quand même pour le blaireau de service Si j'avais que ça à faire, je prendrais bien mon temps pour lire "la bible du C" et devenir un pro. Le problème, c'est que le temps, je l'ai pas...
2) peut-être, le mieux est de commencer à regarder comment marche l'interface graphique (mfc & co sous windows).
actuellement, mode texte uniquement... j'aimerais apprendre l'interface graphique mais c'est pas pour tout de suite...
3) oui, c'est possible avec system & co. le plus simple est d'utiliser les fonctions déjà dispos pour les fichiers : fread(), fwrite(), fprintf(), fclose().
je vais aller voir ça, merci
Merci pour vos réponses A+
Marsh Posté le 23-03-2002 à 20:32:18
Eniac a écrit a écrit : imagine que j'ai un fichier txt avec 10 noms à l'intérieur. il me faut le 5ième, je fais comment ? il me semble que les fonctions de "edit" sont assez limitées... |
C'est quoi edit ?
Tu ne peux pas ouvrir le fichier (fopen), lire son contenu (fgets), et regarder ce qu'il y a à la cinquième ligne ?
Marsh Posté le 23-03-2002 à 22:14:04
Eniac a écrit a écrit : je suis en formation d'ingé, le cours d'info est un "petit" cours et je suis débutant ; en faisant ça j'en fait plus que ce qu'on nous demande, et je suis 1er de la promo pour le moment, donc me prend pas quand même pour le blaireau de service |
LEGREG
Marsh Posté le 24-03-2002 à 11:55:15
edit c'est un soft du DOS, un éditeur de texte, l'ancêtre du notepad si tu préfères
juste une question : les fonctions dont vous me parlez se trouvent dans quelle librairie ?
Marsh Posté le 24-03-2002 à 13:50:01
Citation : Si j'avais que ça à faire, je prendrais bien mon temps pour lire "la bible du C" et devenir un pro. Le problème, c'est que le temps, je l'ai pas... |
Et tu crois que les gens ont du temps à perdre en répondant à un gugusse qui se donne même pas la peine de lire la documentation qu'on lui indique ?
ca me fait vomir...
Marsh Posté le 24-03-2002 à 15:44:49
tanguy a écrit a écrit :
|
laisse le il se prend pour un C-warlord ... pas besoin de lire la doc le monsieur, par contre il peut poser des questions stupides (style la 3e)
Marsh Posté le 24-03-2002 à 22:38:02
tanguy a écrit a écrit : [quote] Et tu crois que les gens ont du temps à perdre en répondant à un gugusse qui se donne même pas la peine de lire la documentation qu'on lui indique ? ca me fait vomir... |
Oui mais il est premier de sa promo
ca ne lui laisse pas beaucoup de temps
pour des broutilles, tu sais
LEGREG
Marsh Posté le 24-03-2002 à 23:08:30
legreg a écrit a écrit : Oui mais il est premier de sa promo ca ne lui laisse pas beaucoup de temps pour des broutilles, tu sais LEGREG |
oué ben s'il est le premier, j'veux pas voir le reste ... et dire que je risque d'avoir ce genre de cas comme boss plus tard .. ca me deprime ...
Marsh Posté le 25-03-2002 à 00:20:39
je suis en formation d'ingé, le cours d'info est un "petit" cours et je suis débutant ; en faisant ça j'en fait plus que ce qu'on nous demande, et je suis 1er de la promo pour le moment, donc me prend pas quand même pour le blaireau de service Si j'avais que ça à faire, je prendrais bien mon temps pour lire "la bible du C" et devenir un pro. Le problème, c'est que le temps, je l'ai pas...
ca va les chevilles ?
arriver en ecole d'ingé et pas savoir ecrire une ligne de C, ca promet ...
Bonne chance pour la suite
Marsh Posté le 25-03-2002 à 10:09:50
De totue façon, si en école d'ingénieur on apprenait des trucs qui servent dans le métier d'ingénieur, ça se saurait.
Marsh Posté le 30-03-2002 à 16:52:24
Bon, vous vous êtes bien défoulés après tout ce temps ?
Je récapitule, paske je crois que y'a un petit malentendu.
Tanguy >
j'ai uniquement besoin de 2 fonctions. Tout ce que je recherche c'est leur nom, et j'ai par la suite été voir la syntaxe dans un bouquin. Fais moi croire que quand tu as besoin d'un petit truc, tu vas éplucher la documentation de A à Z...
HappyHarry >
Tu as tout faux, je suis une cruche en C, c'est d'ailleurs dans le titre de ce topic... Puis bon, remets toi dans ta peau de débutant qui commence juste à capter les boucles et les conditions : si tu trouves encore que ma 3ième question est si façile que ça...
Legreg >
De fait, je n'ai pas le temps. Je me contente de l'essentiel, et si je faisais pas ça, même sans dormir, je n'aurais pas le temps de boucler ce que je dois voir.
Happyharry >
Si tu juges quelqu'un avec les 3 questions qu'il vient de te poser, je crois que tu n'auras jamais l'occasion de travailler pour moi plus tard...
erwan >
Il me semble que je suis à l'école pour apprendre, non ?
Jarjar >
Sans trop m'étendre, je pense que ce que tu fais surtout durant ton cycle d'études, c'est "apprendre à apprendre". De fait, on nous fait toucher un peu à tout, ce qui fait qu'on connait tout, mais très superficiellement (en C aussi, d'ailleurs ). Ca te permet de pouvoir être parachuté dans n'importe quel domaine, de suivre une petite formation et de directement pouvoir bosser à plein régime.
C'est mon avis en tout cas...
Pour finir, j'espère que ce post entier n'est qu'une méprise. J'ai peut-être fait le boss, c'est vrai, mais c'était juste pour faire comprendre à Jarjar que sa méprise à mon égard n'était pas réellement nécéssaire...
Sur ce, merci quand même pour vos réponses
Bye
[jfdsdjhfuetppo]--Message édité par eniac--[/jfdsdjhfuetppo]
Marsh Posté le 30-03-2002 à 17:15:17
Citation : j'ai uniquement besoin de 2 fonctions. Tout ce que je recherche c'est leur nom, et j'ai par la suite été voir la syntaxe dans un bouquin. Fais moi croire que quand tu as besoin d'un petit truc, tu vas éplucher la documentation de A à Z... |
jusqu'a present oui, j'ai toujours evite de poser des questions que je pouvais trouver "facilement" dans la doc et j'ai meme suivi des cours des TD et lu des bouquins entiers sur la programmation, quel fou je suis.
C'est pas pour dire mais si toi ca te fait gagner du temps (et encore..), ca nous en prend egalement de repondre a tes questions, apparemment c'est cela que tu as du mal a realiser.
Citation : Tu as tout faux, je suis une cruche en C, c'est d'ailleurs dans le titre de ce topic... Puis bon, remets toi dans ta peau de débutant qui commence juste à capter les boucles et les conditions : si tu trouves encore que ma 3ième question est si façile que ça... |
On n'a vraiment rien contre les newbies, ce forum est fait
pour ca apres tout mais bon y'a parfois des reactions
qui font pas plaisir.
Citation : De fait, je n'ai pas le temps. Je me contente de l'essentiel, et si je faisais pas ça, même sans dormir, je n'aurais pas le temps de boucler ce que je dois voir. |
Quelle formation fais-tu?
tu es vraiment en ecole d'inge? Parske le "pas le temps de dormir" en general ce n'est pas a cause des cours, mais plutot les soirees et activites extrascolaires. (ose dire le contraire!)
Citation : Sans trop m'étendre, je pense que ce que tu fais surtout durant ton cycle d'études, c'est "apprendre à apprendre". De fait, on nous fait toucher un peu à tout, ce qui fait qu'on connait tout, mais très superficiellement (en C aussi, d'ailleurs ). Ca te permet de pouvoir être parachuté dans n'importe quel domaine, de suivre une petite formation et de directement pouvoir bosser à plein régime. |
Pour moi apprendre a apprendre ca consiste aussi a apprendre
quelque chose.
Sache que sur ce forum il y a pas mal d'inges qui trainent et qui sont tous passes par la case j'apprends et je me prends la tete sur des problemes concrets et je lis des montagnes de doc.
Le fait de tout connaitre "superficiellement" n'est pas une fin en soi mais simplement la consequence de ta non-formation (logique puisque tu en es au debut apparemment).
Et dieu nous sauve des parachutés qui ne connaissent rien a ce qu'ils sont sense faire.
Citation : Pour finir, j'espère que ce post entier n'est qu'une méprise. J'ai peut-être fait le boss, c'est vrai, mais c'était juste pour faire comprendre à Jarjar que sa méprise à mon égard n'était pas réellement nécéssaire... |
Et quelle est sa meprise? la c'est moi qui ai du mal a te suivre.
LEGREG
Marsh Posté le 30-03-2002 à 19:25:41
eniac a écrit a écrit : HappyHarry > Tu as tout faux, je suis une cruche en C, c'est d'ailleurs dans le titre de ce topic... Puis bon, remets toi dans ta peau de débutant qui commence juste à capter les boucles et les conditions : si tu trouves encore que ma 3ième question est si façile que ça... |
ta 3e question ne vaut meme pas qu'on y reponde, c completement stupide ce que tu veux faire, et t'as du mal a le piger ca
[citation]
Happyharry >
Si tu juges quelqu'un avec les 3 questions qu'il vient de te poser, je crois que tu n'auras jamais l'occasion de travailler pour moi plus tard...
[/citation]
et toi si tu prenais la peine d'ecouter ce qu'on te dit, tu n'oserais meme plus les poser tes questions tellement c bete
oui je me rappelle le debutant que j'ai ete, celui qui passait des soirées a lire de la doc quand il avait un gros probleme, pas le genre a venir emm*** le monde avec 3 pov' questions stupides...
honnetement, apprends a reflechir (ouais je sais ca va pas etre evident) et on en reparlera plus tard
Marsh Posté le 30-03-2002 à 21:07:35
jusqu'a present oui, j'ai toujours evite de poser des questions que je pouvais trouver "facilement" dans la doc et j'ai meme suivi des cours des TD et lu des bouquins entiers sur la programmation, quel fou je suis.
C'est pas pour dire mais si toi ca te fait gagner du temps (et encore..), ca nous en prend egalement de repondre a tes questions, apparemment c'est cela que tu as du mal a realiser.
Je comprend ça très bien, le seul problème c'est que je me retrouve devant une foule de possibilités pour faire ce que je veux faire. Pour la 3, tout ce que je voulais, c'était voir si ma piste de réflexion en passant par le DOS était correcte, et pas à me faire houspiller sauvagement... Et au besoin, qu'on m'indique une autre piste, meilleure que celle que je suggérais. Ca, tu le trouves pas dans le bouquin, tu le trouves dans l'expérience. Je me trompe ?
Quelle formation fais-tu?
tu es vraiment en ecole d'inge? Parske le "pas le temps de dormir" en general ce n'est pas a cause des cours, mais plutot les soirees et activites extrascolaires. (ose dire le contraire!)
Oui, en 2ième. Et j'ose affirmer le contraire. Je sors très peu (à mon grand regret). Si je passe pas mes examens du premier coup, y'a pas mal de raisons qui font que je me retrouverai directement sur le marché du travail sans avoir mon beau diplôme Alors tu comprendras qu'il m'arrive de faire quelques "concessions"...
Pour moi apprendre a apprendre ca consiste aussi a apprendre
quelque chose.
Sache que sur ce forum il y a pas mal d'inges qui trainent et qui sont tous passes par la case j'apprends et je me prends la tete sur des problemes concrets et je lis des montagnes de doc.
Le fait de tout connaitre "superficiellement" n'est pas une fin en soi mais simplement la consequence de ta non-formation (logique puisque tu en es au debut apparemment).
Et dieu nous sauve des parachutés qui ne connaissent rien a ce qu'ils sont sense faire.
Arf, oui, c'est sûr qu'après quelques années d'études il te reste forcément quelque chose ! Mais bon, les deux premières années, c'est extrêmement théorique. Je suis certain que la moitié des concepts théoriques qu'on nous fait ingurgiter ne te serviront absolument à rien plus tard. D'où l'utilité d'avoir appris ces trucs, c'est d'avoir acquérit la capacité à apprendre vite et bien.
HappyHarry > c'est sans doute paske mes questions sont tellement connes que personne n'a encore répondu à la 2ième. Oui, je m'excuse, je suis un gros con, je suis incapable de faire quoi que ce soit. Tu fais quoi dans la vie (à part critiquer) ?
[jfdsdjhfuetppo]--Message édité par eniac--[/jfdsdjhfuetppo]
Marsh Posté le 31-03-2002 à 01:03:43
bon je cherche pas specialement a envenimer les choses
mais je pense "sincerement" que tu pars d'un mauvais principe.
la programmation c'est pas un "petit truc".
C'est a dire qu'il est impossible de s'en sortir
(en C plus particulierement parce qu'il ne tolere pas les a peu pres) sans un bouquin, un cours, un mentor etc...
Le temps que tu vas perdre a essayer d'apprendre les bases
sur ce forum (je dis "perdre" parce que c'est une tache impossible)
tu pourrais le gagner en lisant un bouquin vraiment minus minus
qui s'appelle le langage C par Kernighan et Ritchie
et qui repond certainement a la plupart de tes questions.
Pour quelqu'un de presse comme toi c'est vraiment le minimum requis pour programmer en C. Il est a 100% surement dispo
dans la bibliotheque de ton ecole.
Sinon pour la question du scanf ce n'est pas possible.
Lorsque tu veux entrer deux nombres tu vas appuyer
sur entree et donc ca va provoquer le passage a la ligne.
Il faut des fonctions plus bas niveaux que celles de la lib C
standard.
Regarde dans la doc Microsoft aux fonctions de conio.h
qui sont dédiées à la console (pas portable)
LEGREG
Marsh Posté le 31-03-2002 à 01:19:17
eniac a écrit a écrit : HappyHarry > c'est sans doute paske mes questions sont tellement connes que personne n'a encore répondu à la 2ième. Oui, je m'excuse, je suis un gros con, je suis incapable de faire quoi que ce soit. Tu fais quoi dans la vie (à part critiquer) ? |
ce que tu dis (je cite : " je suis un gros con" ) n'engage que toi
ce que je fais dans la vie ? etudiant, moi aussi .. sauf que moi je viens pas faire chier mon monde sans avoir lu la moindre ligne d'une quelconque doc ... quand j'ai un probleme, et ben je cherche ! crois tu que personne n'a rien d'autre a foutre que de repondre a un type qui prend meme pas la peine de chercher par lui meme au moins un tout petit peu ?
oui tes questions sont dans l'ensemble completement connes, edit tu sais comment il ecrit dans un fichier ? ca a ptet pas ete programmé a la base ? meme pas en C peut etre ? ALORS PKOI BON DIEU NE PAS UTILISER LES FONCTIONS DE LECTURE/ECRITURE DANS UN FICHIER DU LANGAGE C PLUTOT QUE DE VOULOIR FAIRE APPEL DANS UN PROGRAMME A UN BINAIRE EXTERNE POUR REALISER LA MEME CHOSE ??? C UNE QUESTION DE BON SENS NON ???
et pour ta 2e question, pardonne nous d'avoir ete noyés dans ta betise
Marsh Posté le 31-03-2002 à 12:23:43
legreg > j'ai déjà un bouquin pour débutants en C (j'ai plus l'auteur en tête), et je l'ai lu très attentivement. Mais je vais t'écouter et trouver le bouquin que tu me conseilles. Sinon j'ai aussi 2 CD d'aide de doc de Visual C++ qui détaille vraiment tout, un peu trop même, car dès que je cherche quelque chose je suis vite noyé... Enfin, ça m'aide quelques fois pour me dépanner
OK pour le scanf, au moins maintenant c'est clair.
Happyharry > on en reparlera qd tu seras calmé
Bye et merci
Marsh Posté le 31-03-2002 à 13:52:38
au risque de me refaire taper sur les doigts, je renchéris :
quand on fait un scanf("%d",&variable) et que, à la place du nombre entier qui était attendu, on écrit une lettre, y'a-t-il moyen que le programme ne se plante pas ?
en fait j'ai terminé mon prog et testé tous les cas de figure possible, tout est prévu, sauf quand on entre une lettre à la place d'un chiffre.
j'ai lu un peu comment marchait le scanf mais c'est assez hard, d'après ce que j'ai compris il faudrait faire des scanf avec %c et pas %d, puis un test pour voir si c'est bien un chiffre et pas un caractère... ça me parait bien long, y'a pas un moyen moins farfelu ? surtout que j'ai fait tout mon prog avec des variables entières (%d) et pas des caractères (%c) j'ai un peu peur de devoir repenser à tout...
Marsh Posté le 31-03-2002 à 14:47:38
eniac a écrit a écrit : en fait j'ai terminé mon prog et testé tous les cas de figure possible, tout est prévu, sauf quand on entre une lettre à la place d'un chiffre. |
Teste la valeur de retour du scanf
elle te donne le nombre d'arguments correctement
rentrés.
Si ce nombre d'arguments est different de celui que tu veux
tu boucles avec un mechant message du genre:
"TETE DE NOEUD j'avais dit deux entiers!"
et tu repasses dans le scanf
Si tu veux l'empecher de taper des lettres
=> conio.h
LEGREG
Marsh Posté le 31-03-2002 à 16:00:47
le nombre d'arguments n'est pas un problème. Par exemple, qd je demande 4 chiffres et si l'utilisateur en entre 6, seuls les 4 premiers seront pris en compte et les chiffres suivants sont "purgés" pour qu'ils ne perturbent pas les scanf suivants dans le déroulement de mon prog
(j'utilise fflush( stdin ) juste après un scanf)
---------------------
J'ai trouvé isdigit dans ctype.h, mais j'arrive pas à lui faire avaler la pillule. Isdigit renvoie la valeur 0 si c'est pas un chiffre.
Mon idée : je scanf un char ;
Je teste ce char avec isdigit ;
Si j'ai 0 je redemande une autre valeur (éventuellement avec un message dans le genre du tien )
Si j'ai non-0, j'attribue la valeur de mon char à un entier (car après, je travaille avec des entiers dans mon prog).
Ci dessous, j'ai juste droit à un "essai" mais je ferai bien la boucle par dessus tout par la suite.
char valeur_qcq ;
int valeur_ch,test ;
scanf("%c",&valeur_qcq);
test=isdigit(valeur_qcq) ;
while(test==0)
{ scanf("%c",&valeur_qcq) ;
}
valeur_ch = valeur_qcq ;
printf("valeur chiffree = %d\n",valeur_ch) ;
Mais ca va pas.
Le seul truc qui pourrait clocher c'est mon passage quelque peu exotique valeur_ch = valeur_qcq ; ?
pourtant quand j'essaie juste de faire ça :
char valeur_qcq=5 ;
int valeur_ch ;
valeur_ch = valeur_qcq ;
printf("valeur chiffree = %d\n",valeur_ch) ;
J'ai pas de problème, je me dit donc (sans doute à tord) qu'on peu quand même passer d'un char à un entier sans problème...
Je vais aller voir ce qu'il y a dans conio.h et je reviens.....
Bye
Marsh Posté le 31-03-2002 à 18:12:10
eniac a écrit a écrit : Tanguy > j'ai uniquement besoin de 2 fonctions. Tout ce que je recherche c'est leur nom, et j'ai par la suite été voir la syntaxe dans un bouquin. Fais moi croire que quand tu as besoin d'un petit truc, tu vas éplucher la documentation de A à Z... |
Pas de bol, depuis presque 1 an j'ai posé une seule et unique question sur ce forum (d'ailleurs personne n'a trouvé de réponse comme quoi).
http://forum.hardware.fr/forum2.ph [...] p=1&trash=
Je trouve que 90% des sujets ici n'auraient pas lieu d'être parceque les gens ne se donnent pas la peine de chercher.
c'est tout le temps les memes questions qui reviennent, que des debats débilles etc...
Marsh Posté le 31-03-2002 à 20:19:55
arf, ce forum ne se veut pas être le regroupement d'une élite d'informaticiens calés. Ce forum est un lieu d'échange, où chacun aide l'autre, selon ses capacités et à différents niveaux.
Si je pose des questions d'élite, seuls qqes rares pourront me répondre, s'ils existent. D'ailleurs pour ce genre de questions, il est assez rare que je trouve réponse ici, et je te conseille de chercher sur des forums plus spécialisés si tu veux un jour trouver qqch pour ton fameux mac. Enfin, l'espoir fait vivre... surtout avec des up.
Sinon, quand je pose des questions trop façiles pour vous, vous n'êtes nullement obligés de prendre votre temps pour y répondre, si vous pensez être au-dessus de ça. Laissez faire les "intermédiaires", ils se feront un plaisir de me répondre, ça fait juste un petit temps qu'ils se sont justement posé la question. L'entraide, ça signifie toujours quelque chose ?
D'autrepart, y'a-t-il un index qui regroupe la pertinence de chaque question que l'on pourrait se poser ? Comment faire la part entre des questions jugées interrésantes, et des questions stupides ? Il y a 3 ans sur hardware-fr, on demandait comment insatller un jeu sous Windows 98. Quelle conneries on pouvait demander, hein ? Avec le recul et quelques années d'expérience...
90% des questions pourraient être évitées ! Sans doute. Va sur ton île avec tous tes bouquins, apprend les par coeur, toutes les réponses sont dedans. Moi je préfère nouer des contacts avec des gens, partager mes connaissances, et utiliser celles des autres. Dans une mesure non trop large bien entendu.
A bon entendeur...
Marsh Posté le 02-04-2002 à 20:04:19
up
j'ai toujours ce problème (je me suis farci la doc pourtant )
char valeur_qcq ;
int valeur_ch,test ;
scanf("%c",&valeur_qcq);
test=isdigit(valeur_qcq) ;
while(test==0)
{ scanf("%c",&valeur_qcq) ;
}
valeur_ch = valeur_qcq ;
printf("valeur chiffree = %d\n",valeur_ch) ;
Qu'est ce qui foire pour que ça ne marche pas ?
Marsh Posté le 02-04-2002 à 22:35:06
eniac a écrit a écrit : up j'ai toujours ce problème (je me suis farci la doc pourtant ) char valeur_qcq ; int valeur_ch,test ; scanf("%c",&valeur_qcq); test=isdigit(valeur_qcq) ; while(test==0) { scanf("%c",&valeur_qcq) ; } valeur_ch = valeur_qcq ; printf("valeur chiffree = %d\n",valeur_ch) ; Qu'est ce qui foire pour que ça ne marche pas ? |
et si tu fais betement :
char valeur_qcq ;
scanf("%c",&valeur_qcq);
while(!isdigit(valeur_qcq))
{ scanf("%c",&valeur_qcq) ;
}
printf("valeur chiffree = %c\n",valeur_qcq);
??
Marsh Posté le 03-04-2002 à 19:53:22
moui, c'est sûr que comme ça, ça marche...
Mais comme je disais plus haut, partout dans mon programme, j'utilise des entiers (int) et pas des caractères (char).
D'où l'utilité de faire valeur_ch = valeur_qcq ;
Saisi mon problème ?
Marsh Posté le 03-04-2002 à 22:32:52
tanguy a écrit a écrit : Pas de bol, depuis presque 1 an j'ai posé une seule et unique question sur ce forum (d'ailleurs personne n'a trouvé de réponse comme quoi). http://forum.hardware.fr/forum2.ph [...] p=1&trash= Je trouve que 90% des sujets ici n'auraient pas lieu d'être parceque les gens ne se donnent pas la peine de chercher. c'est tout le temps les memes questions qui reviennent, que des debats débilles etc... |
c'est plus vrai
Marsh Posté le 03-04-2002 à 22:34:47
eniac a écrit a écrit : moui, c'est sûr que comme ça, ça marche... Mais comme je disais plus haut, partout dans mon programme, j'utilise des entiers (int) et pas des caractères (char). D'où l'utilité de faire valeur_ch = valeur_qcq ; Saisi mon problème ? |
mais c koi le soucis que tu as exactement ? un message d'erreur ? koi ?
Marsh Posté le 04-04-2002 à 19:26:48
non, le compilateur ne signale pas d'erreur, mais le résultat c'est une valeur qui n'a rien avoir (genre 54 en valeur_ch alors que j'ai 5 en valeur_qcq)
Marsh Posté le 04-04-2002 à 19:36:18
eniac a écrit a écrit : non, le compilateur ne signale pas d'erreur, mais le résultat c'est une valeur qui n'a rien avoir (genre 54 en valeur_ch alors que j'ai 5 en valeur_qcq) |
c'est pas le code ascii du caractere '5' par hasard ?
si tu affiches ton char en decimal c normal ...
[jfdsdjhfuetppo]--Message édité par HappyHarry--[/jfdsdjhfuetppo]
Marsh Posté le 05-04-2002 à 20:46:43
mouais j'avais pas pensé à faire le lien
char valeur_qcq ;
int valeur_ch,test ;
scanf("%c",&valeur_qcq);
test=isdigit(valeur_qcq) ;
while(test==0)
{ scanf("%c",&valeur_qcq) ;
}
valeur_ch = valeur_qcq ;
printf("valeur chiffree = %d\n",valeur_ch) ;
Mais ce que je comprend toujours pas, c'est la ligne rouge : l'interprétation, c'est de donner la valeur de valeur_qcq à valeur_ch, non ? Et comme valeur_ch est défini en int, il fait pas la conversion tout seul ? c-à-d, c'est toujours un "char" dans mon valeur_ch, alors que c'est un "int" par définition ???
chuis paumé
Qu'est ce que je peux faire alors, pour véritablement "transformer" mon 5 caractère en 5 entier ?
Merci de ta patience...
Marsh Posté le 05-04-2002 à 20:49:47
mais il conserve la valeur ! c ca que tu ne sembles pas comprendre !
dans ton char, il y a bien la valeur 54 !!! c comme ca qu'est stocké le caractere ! par son code ascii !!!
le seul moyen c d'afficher a l'aide de printf("%c",c) c fait pour !!!
Marsh Posté le 05-04-2002 à 20:49:57
ça tiens pas la route...
si je fais
char valeur_qcq=5 ;
int valeur_ch ;
valeur_ch = valeur_qcq ;
printf("valeur chiffree = %d\n",valeur_ch) ;
ça marche
Marsh Posté le 05-04-2002 à 20:51:05
oui paske tu lui a donné une valeur decimale 5 et pas le caractere '5' !!!
Marsh Posté le 05-04-2002 à 20:53:31
mais en fait y a une solution, mais je l'avais oubliée, preoccupé par le fait que tu comprennes la difference entre le type int et le type char ...
tu lis sur l'entree standard dans une chaine et tu fais un atoi (ascii to integer) de ta chaine et tu recuperes l'entier correspodant
par contre me souviens plus si ca plante ou pas si tu mets autre chose qu'un nombre
Marsh Posté le 05-04-2002 à 21:16:05
arf, oui, mais c'est justement le but de ma petite routine de savoir si j'entre bien un chiffre, et sinon, de proposer à l'utilisateur un nouvel essai....
pour l'exécution ultérieure de mon programme, j'aimerais m'assurer que l'utilisateur a bien entré un nombre et pas une lettre (si tu entres une lettre à la place d'un chiffre, scanf("%d",&chiffre) plante
Marsh Posté le 23-03-2002 à 19:43:05
Salut,
Ex :
printf("Entrez 2 nombres :\n" ) ;
scanf("%d %d",&ch1,&ch2) ;
printf("Merci." );
ça a comme résultat :
Entrez 2 nombres :
36 37
Merci.
Alors que j'aimerais que ça soit :
Entrez deux nombres :
36 37 Merci.
Est-ce possible ? N.B. je suis newbie, pas encore utilisé les gets ni les puts, et hors de question de s'en servir
N.B. en C, je suis newbie, mais je suis un "vieux" qui a bien connu le DOS
Merci de m'aider A+
---------------
If you really want something, all the Universe conspires in helping you to achieve it.