CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Les entrées et sorties de caractères (C)

Paulop
Paulop
Niveau 12
29 juillet 2003 à 11:46:58

Salut, je ne comprendre vraiment rien au entrees et sorties de caractere en C

Je sais que getchar, putchar et autre EOF servent a quelquechose mais je ne comprend pas leur fonctionnement, a koi il servent, bref je comprend pas grand chose sur ces choses :)

QQun pourrait me faire un mini cours vraiment explicite ?

merci

ackeur
ackeur
Niveau 8
29 juillet 2003 à 12:41:21

Salut, bon alors

int getchar(void) est une fonction qui sert à lire un caractère à partir du flux stdin ( saisie clavier).
int putchar(int c) est une fonction qui sert à écrire un caractère sur le flux stdout ( sortie standard).

Exemple:
main()
{
int c;
c=getchar();
putchar(c);
printf("\n");
return 0;
}

Ce programme lit un caractère au clavier puis l´affiche sur la sortie standard ( stdout).

On peut aussi lire plusieurs caractères dans une boucle, exemple:

main()
{
int c;
while(c=getchar() ! = ´q´)
putchar(c);
printf("\n");
return 0;
}

Le programme attend une saisie clavier et l´imprime à l´écran, il sortira lorsque le caractère tapé sera ´q´.

Sinon pour la saisie de chaînes de caractères on employera int scanf(const char *format, . ..);
L´indicateur de format pour les chaînes de caractère est %s.

Exemple, saisie d´un prénom dans un tableau de 20 octets et affichage du contenu du tableau ( avec printf):

main()
{
char prenom[20];
scanf("%20s",&); /* utilisation des bounds checking %Ns : permet de stocker dans prenom au maximum N caractère, cela évite les erreurs ( buffer overflow) */
printf("%s\n",prenom); /* affichage du prénom saisi */
return 0;
}

Quant à EOF c´est un indicateur de fin de fichier, exemple:

while((c=fgetc(fichier)) ! = EOF) putchar(c);

Ici on lit en boucle le prochain caractère à partir du flux " fichier" ( avec fgetc), tant qu´on est pas arrivé à la fin du fichier, on affiche ce caractère.

Bon voilà, en espérant avoir pu t´aider à mieux comprendre .

++

Paulop
Paulop
Niveau 12
29 juillet 2003 à 12:57:33

Ok, ça va mieu :)

Maintenant comment je pourrai connaitre la valeur de EOF ?

ackeur
ackeur
Niveau 8
29 juillet 2003 à 13:15:00

Ca te servirait pas à grand chose de connaître cette valeur, elle doit se trouver dans un des fichiers d´entêtes de la lib C, elle dépend du système de fichier que tu utilises, pour le savoir tu n´as qu´à faire:

  1. include < stdio.h>

int main()
{
printf("0x%X\n",EOF);
return 0;
}

@+

Paulop
Paulop
Niveau 12
29 juillet 2003 à 16:04:12

Bon, j´ai un probleme, voila mon code ::

  1. include < stdio.h>

main()
{

int c, i, nespace, nautre;
int nchiffre[10];

nespace = nautre = 0;
for ( i =0; i < 10; ++i)
nchiffre[i] = 0;

while ( (c = getchar()) ! = EOF)
if ( c > = ´0´ && c < = ´9´)
++nchiffre[c-´0´];
else if ( c == ´ ´ || c == ´\n´ || c == ´\t´)
++nespace;
else
++nautre;

printf("chiffres =");
for ( i=0; i<10; ++i)
printf(" %d",nchiffre[i]);
printf(", espacement = %d, autres = %d\n", nespace, nautre);

}

C´est censé afficher des chiffres mais rien :(

Paulop
Paulop
Niveau 12
30 juillet 2003 à 11:16:06

:up:

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment