#include <stdio.h>
int main(void)
{
char c ;
c = getchar() ;
while ( c != EOF )
{
putchar(c) ;
c = getchar() ;
}
return 0 ;
}
#include <stdio.h>
int main(void)
{
char c ;
c = getchar() ;
while ( c != EOF )
{
putchar(c) ;
c = getchar() ;
}
return 0 ;
}
#include <stdio.h>
int main(void)
{
char c ;
c = getchar() ;
while ( c != EOF )
{
putchar(c) ;
c = getchar() ;
}
return 0 ;
}
Je trouve getchar() assez difficile à comprendre. Au lieu de saisir du
clavier, getchar lit directement dans la mémoire? Presser une touche
du claver entraine un signal dans le bios qui "renvoie" ce signal dans
le kernel puis dans la mémoire (buffer) et de ce dernier est affiché
le caractère de la touche pressée (par ex.: a) précédemment. Par
contre le caractère reste toujours dans le buffer mais dans la partie
"ancienne" du buffer. Dans la partie "neuve", se trouverait les
caractères qui n'ont pas été affichés à l'écran ou traités d'une autre
manière.
Ce code d'apparence simple pour la saisie me laisse perplexe:
#include <stdio.h>
int main(void)
{
char c ;
c = getchar() ;
while ( c != EOF )
{
putchar(c) ;
c = getchar() ;
}
return 0 ;
}
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
Je trouve getchar() assez difficile à comprendre. Au lieu de saisir du
clavier, getchar lit directement dans la mémoire? Presser une touche
du claver entraine un signal dans le bios qui "renvoie" ce signal dans
le kernel puis dans la mémoire (buffer) et de ce dernier est affiché
le caractère de la touche pressée (par ex.: a) précédemment. Par
contre le caractère reste toujours dans le buffer mais dans la partie
"ancienne" du buffer. Dans la partie "neuve", se trouverait les
caractères qui n'ont pas été affichés à l'écran ou traités d'une autre
manière.
Ce code d'apparence simple pour la saisie me laisse perplexe:
#include <stdio.h>
int main(void)
{
char c ;
c = getchar() ;
while ( c != EOF )
{
putchar(c) ;
c = getchar() ;
}
return 0 ;
}
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
Je trouve getchar() assez difficile à comprendre. Au lieu de saisir du
clavier, getchar lit directement dans la mémoire? Presser une touche
du claver entraine un signal dans le bios qui "renvoie" ce signal dans
le kernel puis dans la mémoire (buffer) et de ce dernier est affiché
le caractère de la touche pressée (par ex.: a) précédemment. Par
contre le caractère reste toujours dans le buffer mais dans la partie
"ancienne" du buffer. Dans la partie "neuve", se trouverait les
caractères qui n'ont pas été affichés à l'écran ou traités d'une autre
manière.
Ce code d'apparence simple pour la saisie me laisse perplexe:
#include <stdio.h>
int main(void)
{
char c ;
c = getchar() ;
while ( c != EOF )
{
putchar(c) ;
c = getchar() ;
}
return 0 ;
}
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
le 19/06/2010 à 02:14, bpascal a écrit dans le message
:(...)
Ce code d'apparence simple pour la saisie me laisse perplexe:
#include<stdio.h>
int main(void)
{
char c ;
Attention, getchar() renvoie un int !
{...}
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
Non, tu te poses vraiment trop de questions, il n'y a aucune histoire de
buffer ici. Tu lis un caractère dans stdin, puis tant que ce caractère
n'est pas EOF (fin de fichier), tu l'envoies sur stdout puis tu en lis
un autre, etc. Il n'y a pas à aller chercher plus loin.
>> c = getchar() ;
le 19/06/2010 à 02:14, bpascal a écrit dans le message
<174c05a8-c741-46ea-9665-9f48019935e8@t10g2000yqg.googlegroups.com> :
(...)
Ce code d'apparence simple pour la saisie me laisse perplexe:
#include<stdio.h>
int main(void)
{
char c ;
Attention, getchar() renvoie un int !
{...}
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
Non, tu te poses vraiment trop de questions, il n'y a aucune histoire de
buffer ici. Tu lis un caractère dans stdin, puis tant que ce caractère
n'est pas EOF (fin de fichier), tu l'envoies sur stdout puis tu en lis
un autre, etc. Il n'y a pas à aller chercher plus loin.
>> c = getchar() ;
le 19/06/2010 à 02:14, bpascal a écrit dans le message
:(...)
Ce code d'apparence simple pour la saisie me laisse perplexe:
#include<stdio.h>
int main(void)
{
char c ;
Attention, getchar() renvoie un int !
{...}
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
Non, tu te poses vraiment trop de questions, il n'y a aucune histoire de
buffer ici. Tu lis un caractère dans stdin, puis tant que ce caractère
n'est pas EOF (fin de fichier), tu l'envoies sur stdout puis tu en lis
un autre, etc. Il n'y a pas à aller chercher plus loin.
>> c = getchar() ;
Je trouve getchar() assez difficile à comprendre.
Ce code d'apparence simple pour la saisie me laisse perplexe:
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
Je trouve getchar() assez difficile à comprendre.
Ce code d'apparence simple pour la saisie me laisse perplexe:
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
Je trouve getchar() assez difficile à comprendre.
Ce code d'apparence simple pour la saisie me laisse perplexe:
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
Non, tu te poses vraiment trop de questions, il n'y a aucune histoire de
nb_Non++;buffer ici. Tu lis un caractère dans stdin, puis tant que ce caractère
^^^^^^ ^^^^^
sisi, c'est le but de stdio d'ailleurs.
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
Non, tu te poses vraiment trop de questions, il n'y a aucune histoire de
nb_Non++;
buffer ici. Tu lis un caractère dans stdin, puis tant que ce caractère
^^^^^^ ^^^^^
sisi, c'est le but de stdio d'ailleurs.
Je me demande si un petit apprentissage de l'assembleur jusqu'à
comprendre ce code, ne serait pas utile dans ce cas?
Non, tu te poses vraiment trop de questions, il n'y a aucune histoire de
nb_Non++;buffer ici. Tu lis un caractère dans stdin, puis tant que ce caractère
^^^^^^ ^^^^^
sisi, c'est le but de stdio d'ailleurs.
Je trouve getchar() assez difficile à comprendre. Au lieu de saisir du
clavier, getchar lit directement dans la mémoire? Presser une touche
Je trouve getchar() assez difficile à comprendre. Au lieu de saisir du
clavier, getchar lit directement dans la mémoire? Presser une touche
Je trouve getchar() assez difficile à comprendre. Au lieu de saisir du
clavier, getchar lit directement dans la mémoire? Presser une touche
Je laisse la parole à Marc: --> <hvi0lp$
--
christophe.
Je laisse la parole à Marc: --> <hvi0lp$1rv...@saria.nerim.net>
--
christophe.
Je laisse la parole à Marc: --> <hvi0lp$
--
christophe.
Je laisse la parole à Marc: --> <hvi0lp$
--
christophe.
Je comprends que getchar() renvoie un entier. J'avais vu quelque part
qu'en déclarant char c = getchar() et plus loin indiquer
printf("%d",c) on pouvait voir la valeur de EOF...
Je laisse la parole à Marc: --> <hvi0lp$1rv...@saria.nerim.net>
--
christophe.
Je comprends que getchar() renvoie un entier. J'avais vu quelque part
qu'en déclarant char c = getchar() et plus loin indiquer
printf("%d",c) on pouvait voir la valeur de EOF...
Je laisse la parole à Marc: --> <hvi0lp$
--
christophe.
Je comprends que getchar() renvoie un entier. J'avais vu quelque part
qu'en déclarant char c = getchar() et plus loin indiquer
printf("%d",c) on pouvait voir la valeur de EOF...
Par hasard, ce code ne fonctionne pas sous linux distro ubuntu...
(j'essaie de m'intéresser à ce qui se passe "sous le rideau", la
réponse précédente (Marc E.) est intéressante pour ça. Cdt.
#include <stdio.h>
#include <bios.h>
main()
{
unsigned int saisie;
int carlu, scancode;
printf ("Press a key:n");
saisie = _bios_keybrd(_KEYBRD_READ); // <- Hum. accès au bios en mode réel/16 bits
carlu = saisie & 255;
scancode = saisie >> 8;,
printf("nScancode : %d Caractere : %cn", scancode, carlu);
}
Par hasard, ce code ne fonctionne pas sous linux distro ubuntu...
(j'essaie de m'intéresser à ce qui se passe "sous le rideau", la
réponse précédente (Marc E.) est intéressante pour ça. Cdt.
#include <stdio.h>
#include <bios.h>
main()
{
unsigned int saisie;
int carlu, scancode;
printf ("Press a key:n");
saisie = _bios_keybrd(_KEYBRD_READ); // <- Hum. accès au bios en mode réel/16 bits
carlu = saisie & 255;
scancode = saisie >> 8;,
printf("nScancode : %d Caractere : %cn", scancode, carlu);
}
Par hasard, ce code ne fonctionne pas sous linux distro ubuntu...
(j'essaie de m'intéresser à ce qui se passe "sous le rideau", la
réponse précédente (Marc E.) est intéressante pour ça. Cdt.
#include <stdio.h>
#include <bios.h>
main()
{
unsigned int saisie;
int carlu, scancode;
printf ("Press a key:n");
saisie = _bios_keybrd(_KEYBRD_READ); // <- Hum. accès au bios en mode réel/16 bits
carlu = saisie & 255;
scancode = saisie >> 8;,
printf("nScancode : %d Caractere : %cn", scancode, carlu);
}
Je comprends que getchar() renvoie un entier. J'avais vu quelque part
qu'en déclarant char c = getchar() et plus loin indiquer
printf("%d",c) on pouvait voir la valeur de EOF...
Par hasard, ce code ne fonctionne pas sous linux distro ubuntu...
(j'essaie de m'intéresser à ce qui se passe "sous le rideau", la
réponse précédente (Marc E.) est intéressante pour ça. Cdt.
#include <stdio.h>
#include <bios.h>
main()
{
unsigned int saisie;
int carlu, scancode;
printf ("Press a key:n");
saisie = _bios_keybrd(_KEYBRD_READ);
carlu = saisie & 255;
scancode = saisie >> 8;
printf("nScancode : %d Caractere : %cn", scancode, carlu);
}
Je comprends que getchar() renvoie un entier. J'avais vu quelque part
qu'en déclarant char c = getchar() et plus loin indiquer
printf("%d",c) on pouvait voir la valeur de EOF...
Par hasard, ce code ne fonctionne pas sous linux distro ubuntu...
(j'essaie de m'intéresser à ce qui se passe "sous le rideau", la
réponse précédente (Marc E.) est intéressante pour ça. Cdt.
#include <stdio.h>
#include <bios.h>
main()
{
unsigned int saisie;
int carlu, scancode;
printf ("Press a key:n");
saisie = _bios_keybrd(_KEYBRD_READ);
carlu = saisie & 255;
scancode = saisie >> 8;
printf("nScancode : %d Caractere : %cn", scancode, carlu);
}
Je comprends que getchar() renvoie un entier. J'avais vu quelque part
qu'en déclarant char c = getchar() et plus loin indiquer
printf("%d",c) on pouvait voir la valeur de EOF...
Par hasard, ce code ne fonctionne pas sous linux distro ubuntu...
(j'essaie de m'intéresser à ce qui se passe "sous le rideau", la
réponse précédente (Marc E.) est intéressante pour ça. Cdt.
#include <stdio.h>
#include <bios.h>
main()
{
unsigned int saisie;
int carlu, scancode;
printf ("Press a key:n");
saisie = _bios_keybrd(_KEYBRD_READ);
carlu = saisie & 255;
scancode = saisie >> 8;
printf("nScancode : %d Caractere : %cn", scancode, carlu);
}