Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Aux contributeurs !

155 réponses
Avatar
LMC
Bonjour,
Après avoir piqué ma grosse colère, je me remets au boulot, mais que puis-je
utiliser comme logiciels pour apprendre le langage C ? J'ai téléchargé
MASM32 editor. Je possède déjà Devcpp.exe, Code::Blocks et Microsoft Visual
C++. Voilà, vous savez tout. Grand merci pour votre aide.
Il n'y a que les cons pour rester cons !!!

--
@++
LMC

10 réponses

Avatar
Thierry B.
--{ Antoine Leca a plopé ceci: }--

Je te comprends (et je ne comprend toutjours pas pourquoi curses existe,
mais c'est un autre débat).



Bah quoi, c'est très bien, ncurses... Hop, un petit lien:
http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/

C'est termios la `norme' depuis quelques annees,



OK c'est noté.



Termios, c'est quand même un peu la couche en dessous...


--
Amis de la grillade, savez vous qu'il existe un newsgroup fait pour vous ?
+---------------------------+
! alt.fr.outil.barbecue !
+---------------------------+
Avatar
espie
In article ,
Thierry B. wrote:
--{ Antoine Leca a plopé ceci: }--

Je te comprends (et je ne comprend toutjours pas pourquoi curses existe,
mais c'est un autre débat).



Bah quoi, c'est très bien, ncurses... Hop, un petit lien:
http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/

C'est termios la `norme' depuis quelques annees,



OK c'est noté.



Termios, c'est quand même un peu la couche en dessous...



Oui, mais la on parle de recuperer des frappes clavier.

Sur ce genre de choses, curses marchotte, mais sur des petits trucs, et c'est
un peu un ensemble `tout ou rien'. Il y a quand meme pas mal de presupposes
dedans qui font que ca n'est pas toujours evident a integrer avec d'autres
operations plus ou moins `temps reel'. C'est pas pour rien s'il y a plein
d'alternatives a curses, plus ou moins utilisees, et qui te laissent plus
ou moins de controle sur ce qui se passe.

Le souci, bien sur, c'est qu'en C (et particulierement sous Unix), tu as
souvent une grosse partie de l'etat de ton programme (ou du process courant)
qui est implicite et global... ca a commence avec errno et stdin/stdou/stderr,
quand tu rajoutes a ca le cote bloquant/non-bloquant de chaque fd, les
specificites des entrees-sorties terminal, les gestionnaires de signaux,
ben tu te retrouves avec une bibliotheque ou le premier appel d'initialisation
s'empare allegrement des 3/4 de cet etat. Apres, si tu n'es pas tout a
fait d'accord avec ses decisions, c'est un peu la joie pour retomber sur
tes pattes.

Globalement, termios est simple d'emploi, et fait bien ce qu'on veut.
Il faut juste bien realiser qu'on s'engage a remettre le terminal en l'etat
ou on l'avait trouve, en cas d'interruption temporaire ou permanente du
programme. Il faut juste ne pas oublier de mettre des gestionnaires pour
les signaux de job control et les signaux de terminaison intempestive,
et ca marche tres bien.

C'est vachement plus simple que il y a quinze ans, ou tu avais le choix
entre deux variantes de termio(s), plus les Unixoides ou tu devais passer
par sgtty (BSD) et ceux ou tu etais bon pour trouver les bons ioctl...
Avatar
LMC
Bonjour,
"Pierre Maurette" a écrit dans le message de
news:
LMC, le 24/09/2008 a écrit :

[...]

On peut apprendre le français avec le Grévisse !



Si vous pensez à l'édition française - belge ? - de ce qu'on appelle "Le
Grevisse" [avec un 'e', et non un 'é'], alors pour apprendre le français,
il faudrait savoir le français ?



Sachez que Monsieur Grevisse était Belge comme moi. Il arrive de faire des
erreurs dans la vie. Je reconnais qu'ici j'en ai fait une, car en Belgique,
on a l'habitude de dire Grévisse alors qu'on devrait dire Grevisse. Puisque
vous poildecutez comme on dit en Belgique, sachez que j'écris et parle le
français sûrement mieux que vous, car les Français sont reconnus comme ceux
qui parlent et écrivent le plus mal de la communauté française. D'ailleurs,
entre nous, nous sommes dans un forum qui traite du langage C et non de la
langue française. Alors, revenons à nos moutons !!!


--
Pierre Maurette




--
@++
LMC
Avatar
LMC
"Antoine Leca" a écrit dans le message de news:
gbdq2c$l8i$
En news:, LMC va escriure:
Mayeul a écrit dans le message de


news:48d9f319$0$22206$
LMC a écrit :




[définition de bug]
voici ma réponse d'après le Larousse 2007 ==> défaut de conception
ou de réalisation d'un programme, se manifestant par des anomalies
de fonctionnement.
Vous avez, peut-être, une autre définition ?



Je pense que nous trouverons tous cette définition très correcte.
Mais je ne suis pas sûr que refuser de compiler un programme,
conformément au fait qu'il ne respecte pas l'environnement de
développement, soit une anomalie de fonctionnement.
Je dirais plutôt le contraire a priori.



A 1re vue, cela me semble : chou vert et vert chou.



Bon, d'abord on a deux programmes différents en cause : d'un côté le «
programme fantôme » dont une des seules choses que nous savons est qu'il
essaye d'#inclure <bios.h>; je le nommerais exercice.c pour simplifier.
De l'autre l'environnement de développement C utilisé, ou plus exactement
les deux environnements puisque la discussion est venue de la phrase

::: J'ai refait l'exercice avec Code: Blocks ==> même bug.

Si je lis correctement le français, vous accusez (pointez du doigt si vous
préférez le politiquement correct) ces deux environnements d'avoir des
bugs
puisqu'ils ne sont pas capables de compiler votre exercice.c. Comme dit
justement Mayeul, en fait on est en dehors des cas d'emploi donc il n'y a
pas d'anomalie de fonctionnement, il y a plutôt contre-emploi ; c'est
comme
dans le cas du taré qui prend l'autoroute à contre-sens, on ne va pas
rejeter la faute sur le pauv' touriste qui n'a pas réussi à l'éviter...


Par ailleurs, si l'on tire par les cheveux votre phrase et qu'on essaye de
l'appliquer au « programme » exercice.c, je ne vois pas pour l'instant
d'anomalie de fonctionnement du dit programme, donc dans l'état je ne vois
pas la définition s'appliquer.
il est vrai qu'il y a bien (de mon point de vue) un « défaut de conception
ou de réalisation » de ce programme, en l'occurence un défaut de
portabilité, mais contrairement aux bogues celui-ci n'entraîne pas de
dysfonctionnements, puisque les compilateurs concernées n'ont tout
simplement pas accepté de le compiler.

D'où ma divergence sur les termes.


Le commun des mortels ne voit que la définition d'un dictionnaire.



Non. Le commun des mortels se sert de ses connaissances immanentes du
vocabulaire (et de la grammaire) de la langue française pour interpréter
votre pensée, et ne va pas consulter le dictionnaire pour connaîtres
l'avis
des distingués lexicographes de Larrouse.

D'ailleurs, lorsque j'écrivai
:: On ne doit pas avoir la même définition de « bug »...
je ne faisais pas référence à la définition du dictionnaire, mais à la
mienne et à la vôtre.


Antoine



Je réponds ci-dessous.
Je suis sidéré par vos réponses.
Je m'exprime comme je le peux, n'étant pas technicien en la matière
informatique. Parlez-moi d'assurances et je vous répondrai correctement,
pratiquant ce métier depuis plus de 50 ans.
Comme je me suis mal exprimé, la réponse fournie rectifie très bien mon
mauvais langage.
Revenant au problème existant, je prends la décision de ne plus venir vous
ennuyer avec mes exercices, qui ne sont, de toute façon, plus d'actualité.
Je vous remercie grandement pour toutes vos excellentes informations.

--
@++
LMC
Avatar
LMC
"Antoine Leca" a écrit dans le message de news:
gbdrfd$qtr$
En news:, LMC va escriure:
Voici l'exercice :

/* whichkey montre, via scancode et code ASCII, la touche enfoncée */



Okay. Avec Windows il faut intercepter le message WM_KEYDOWN qui a été
envoyé à votre application.

Cela paraît du chinois, n'est-ce-pas ? Le plus drôle, c'est que c'était
déjà
ainsi en 1990-93 (lorsque Windows est devenu la principale plateforme pour
les applications écrites en C), donc un livre écrit en 1997 qui n'aborde
pas
ce sujet vous coupe en fait de la majorité de la cible potentielle... (et
cela montre aussi que cet exemple a dû être conçu vers 1990).


printf("33[2J");



Évite aussi celle-là : d'abord c'est en général inutile d'effacer l'écran
dans un exercice ; et ensuite le programme fait ici des hypothèses plutôt
fortes sur l'environnement, en mélangeant l'accès direct au BIOS de l'IBM
PC
83/84 touches pour lire les codes des touches, avec une émulation VT-100
(un
terminal déporté pour les mini-ordinateurs, genre Minitel mais un peu plus
évolué, courant dans les années 1970 et 80) de la gestion de l'affichage à
l'écran.


printf("Appuyez sur une touche : ");



Et là on a un vrai bogue : en effet l'auteur a écrit quelque chose mais
sans
terminer sa ligne (avec un n), donc il n'a pas de garantie (au point de
vue
du C) que les caractères seront bien présents à l'écran, autrement dit il
est bien possible que le message ne s'affiche qu'après que vous ayez
appuyer
sur la touche en question...


saisie = _bios_keybrd(_keybrd_read);



Version Microsoft, donc... Vous pouvez essayer OpenWatcom
(www.openwatcom.org), peut-être qu'ils émulent cela et peut-être même
qu'ils
l'émulent sous Win32 (donc avec XP). SGDG, et je ne suis pas *certain* que
le jeu en vaille la chandelle... :-)

'keybrd_read' undeclared (first use in this function)



Oui. Le bouquin (dans sa version originale) devait l'avoir en capitales...
Donc si c'est une erreur de recopie, sache qu'en C la casse est importante
(et si c'est une erreur au niveau du livre lui-même... cela n'arrangerait
vraiment pas son cas.)


Suite à cette situation, j'ai donc laissé l'exercice irrésolu et
continué mon étude.



Bonne idée.


Antoine




Grand merci pour toutes ces réponses.
Comme, je l'ai écrit dans un autre message, je poursuis mon chemin sans
tenir compte des erreurs.

--
@++
LMC
Avatar
Antoine Leca
En news:, LMC va escriure:
car en Belgique, on a l'habitude de dire Grévisse alors qu'on devrait
dire Grevisse.



Je ne vois pas le problème comme cela. En général, on ne « dit » pas les
accents en français (c'est différent dans les autres langues romanes).

On a un monsieur, pour lequel l'officier d'État-civil a enregistré
(semble-t-il par erreur) un nom sans accent. Donc on _écrit_ sans accent.

D'un autre côté, on a un nom qui se _prononce_ [gRevis] (à la parisienne,
[grevis] dans le sud).


Alors, revenons à nos moutons !!!



Oui, car nous nous égarrons.


Antoine
Avatar
Antoine Leca
En news:, LMC va escriure:
Je suis sidéré par vos réponses.



Il ne faut pas, le ciel ne va pas tomber sur la tête de qui que ce soit
(même si cette semaine je suis plutôt servi de ce côté-là :
http://comunidad.levante-emv.com/servicios/galeriasMultimedia/index.jsp?pIdGaleria)87,
ce sont des photos du lendemain des orages de mardi.)


J'ai fait une remarque (de 10 mots en tête d'un message de 55 lignes) qui à
mon sens me prêtait pas à plus de considération. Tu répondis dans un message
_séparé_ (news:, le message avec contenu étant
news:) pour souligner explicitement la remarque, et ton
désaccord formel sur son bien-fondé. En vertu de quoi j'essaye d'expliquer
avec un peu plus de détail (OK, /beaucoup/ plus, puisque j'ai fait 63
lignes... je suis bavard ;-) ) pourquoi cela au départ.


Je m'exprime comme je le peux, n'étant pas technicien en la matière
informatique.



Bien sûr. Et c'est pourquoi j'ai pris la peine de détailler pourquoi
j'écrivais cela au départ.


[...] ne plus venir vous ennuyer [...]



Il n'y aucun ennui, bien au contraire, cela fournit des occasions de se
dérouiller les neurones, parce qu'avec le trafic de fclc cette année elles
ont bien besoin.

À+


Antoine
Avatar
LMC
En Belgique,
on dit Grevisse. Vous prononcez comme vous voulez, l'origine sera toujours
Belge.

--
@++
LMC
"Antoine Leca" a écrit dans le message de news:
gbg9aj$kae$
En news:, LMC va escriure:
car en Belgique, on a l'habitude de dire Grévisse alors qu'on devrait
dire Grevisse.



Je ne vois pas le problème comme cela. En général, on ne « dit » pas les
accents en français (c'est différent dans les autres langues romanes).

On a un monsieur, pour lequel l'officier d'État-civil a enregistré
(semble-t-il par erreur) un nom sans accent. Donc on _écrit_ sans accent.

D'un autre côté, on a un nom qui se _prononce_ [gRevis] (à la parisienne,
[grevis] dans le sud).


Alors, revenons à nos moutons !!!



Oui, car nous nous égarrons.


Antoine



Avatar
LMC
Malheureusement, vous l'avez mal pris. Sidérer ==> frapper de stupeur,
abasourdir, stupéfier.
J'étais, bien sûr, très heureux et même en lisant cette immense réponse.
Je suis toujours preneur, mais j'ai peur d'être souvent remis à ma place
alors que mon intention n'est que d'apprendre, si faire se peut, le langage
C.
"Antoine Leca" a écrit dans le message de news:
gbgao6$qe2$
En news:, LMC va escriure:
Je suis sidéré par vos réponses.



Il ne faut pas, le ciel ne va pas tomber sur la tête de qui que ce soit
(même si cette semaine je suis plutôt servi de ce côté-là :
http://comunidad.levante-emv.com/servicios/galeriasMultimedia/index.jsp?pIdGaleria)87,
ce sont des photos du lendemain des orages de mardi.)


J'ai fait une remarque (de 10 mots en tête d'un message de 55 lignes) qui
à
mon sens me prêtait pas à plus de considération. Tu répondis dans un
message
_séparé_ (news:, le message avec contenu étant
news:) pour souligner explicitement la remarque, et
ton
désaccord formel sur son bien-fondé. En vertu de quoi j'essaye d'expliquer
avec un peu plus de détail (OK, /beaucoup/ plus, puisque j'ai fait 63
lignes... je suis bavard ;-) ) pourquoi cela au départ.


Je m'exprime comme je le peux, n'étant pas technicien en la matière
informatique.



Bien sûr. Et c'est pourquoi j'ai pris la peine de détailler pourquoi
j'écrivais cela au départ.


[...] ne plus venir vous ennuyer [...]



Il n'y aucun ennui, bien au contraire, cela fournit des occasions de se
dérouiller les neurones, parce qu'avec le trafic de fclc cette année elles
ont bien besoin.

À+


Antoine



Encore un grand merci.

--
@++
LMC
Avatar
LMC
Je ne savais pas que vous habitiez l'Espagne. Avez-vous subi personnellement
des dégâts ?
Chez nous, nous n'avons pas subi d'intempéries.
Je vous souhaite bon courage.

--
@++
LMC
"Antoine Leca" a écrit dans le message de news:
gbgao6$qe2$
En news:, LMC va escriure:
Je suis sidéré par vos réponses.



Il ne faut pas, le ciel ne va pas tomber sur la tête de qui que ce soit
(même si cette semaine je suis plutôt servi de ce côté-là :
http://comunidad.levante-emv.com/servicios/galeriasMultimedia/index.jsp?pIdGaleria)87,
ce sont des photos du lendemain des orages de mardi.)


J'ai fait une remarque (de 10 mots en tête d'un message de 55 lignes) qui
à
mon sens me prêtait pas à plus de considération. Tu répondis dans un
message
_séparé_ (news:, le message avec contenu étant
news:) pour souligner explicitement la remarque, et
ton
désaccord formel sur son bien-fondé. En vertu de quoi j'essaye d'expliquer
avec un peu plus de détail (OK, /beaucoup/ plus, puisque j'ai fait 63
lignes... je suis bavard ;-) ) pourquoi cela au départ.


Je m'exprime comme je le peux, n'étant pas technicien en la matière
informatique.



Bien sûr. Et c'est pourquoi j'ai pris la peine de détailler pourquoi
j'écrivais cela au départ.


[...] ne plus venir vous ennuyer [...]



Il n'y aucun ennui, bien au contraire, cela fournit des occasions de se
dérouiller les neurones, parce qu'avec le trafic de fclc cette année elles
ont bien besoin.

À+


Antoine