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

Le manipulateur endl ?

freedix
freedix
Niveau 10
21 juillet 2003 à 11:50:30

Voila, je conprends pas trop à quoi sert " endl". Dans mon bouquin, c´est écrit que ça sert à vider le tampon de sortie et à créer une nouvelle ligne.
Et dans le chapitre 2, il en mettent à plusieurs lignes de suite, je conprends pas pourquoi ! !
Vous pouvez m´expliquer à quoi ça sert, et si c´est vraiment utile !
Sinon, j´ai une autre question, j´ai un exercice dans le chap 1 qui utilise :
static_cast< int > ( ´A´ )
C´est écrit que c´est pour connaitre l´équivalent entier par rapport à la table ASCII.
A quoi ça sert ?
Merci :)

guyver2
guyver2
Niveau 10
21 juillet 2003 à 11:55:46

pour ta deuxiemme kestion il me semble ( rien n´est moin sur) ke c´est pour convertir les lettre en nombre par rapport a leur valeur dans la table ascii

Lightness1024
Lightness1024
Niveau 10
21 juillet 2003 à 12:56:42

non en C les caracteres sont stoqués directement en tant que valeur ascii ( il faut se souvenir que c´est un langage bas niveau)
ce cast transforme un char en int ( ca sert a rien du tout)

mais bon il le fait kan meme.
si tu veu avoir la valeur ascii il suffit de faire print avec %d au lieu de %c ou %s !
point final.

et pour ce qui est de endl c´est l´escape sequence ´\n´ ou Carriage Return + Line Feed ( soit char 13 + 10) point final aussi.

dream_dealer
dream_dealer
Niveau 2
21 juillet 2003 à 13:33:04

ah!!! une question où je peut répondre. endl c´est l´équivalent de " \n" pour revenir à la ligne sauf que tu ne l´inclus pas dans une chaîne de caractères.v´la deux exemples.
cout < < " Hehe\n"; est pareil que
cout < < " Hehe" < < endl;
d´ailleur à mon avis endl est mis pour end line.
Sinon pour la deuxième question: ouais cast c´est pour changer le type d´un nombre. Ainsi moi je connais la sintaxe suivante.
int ValeurA = ´A´;
ou sinon le bout de code suivant:
float f1 = 10.4;
float f2 = ( long)f1;
là le nombre est ce qu´on appelle caté c´est à dire qu´on change son type. voilà

dream_dealer
dream_dealer
Niveau 2
21 juillet 2003 à 13:34:11

oups pour l´opérateur de flux de cout c´est < < pas < < . J´avais pas fait gaffe;)

dream_dealer
dream_dealer
Niveau 2
21 juillet 2003 à 13:35:18

non c´est ce forum qui rajoute des espaces. Mais je me comprend.

JeanYvesYves
JeanYvesYves
Niveau 10
21 juillet 2003 à 13:55:20

static_cast< int > ( ´A´ )

du template ! ! :)
c´set de la généricité : ça sert a pouvoir manipuler n´importe quoi avec des fonctions
ici ça spécifie que ça manipule des int...

Enfin bref, les template des fois c´est sympa ! perso j´en utilise pas trop pour ce que je programme, par contre, en C++, j´utilise pas mal les STL ( standard Template Library) et c´est bourré de template, et ça marche trop bien ! :)

freedix
freedix
Niveau 10
21 juillet 2003 à 14:13:20

Et c´est quoi le tampon de sortie ?
Donc je peux très bien utiliser \n à la place de endl. C´est pas grave si je n´utilise pas endl ?
Merci :)

dream_dealer
dream_dealer
Niveau 2
21 juillet 2003 à 14:35:04

Le tampon de sortie d´après moi je dirais que c´est la mémoire allouer à la sortie. La sortie c´est ce qui va s´afficher sur ton écran. Sinon les tampons c´est les trucs que les femmes mettent pendant les règles.^^

Nesca
Nesca
Niveau 5
21 juillet 2003 à 14:51:44

Autant c´est mal, très mal, d´utiliser cout<<´\n´, autant c´est bien, très bien, d´utiliser cout<<endl, et je m´explique

Tout d´abord, bien comprendre la différence entre tois choses : ´\n´ ( charactère 13), " \r\n" ( caractère 10 suivi du caractère 13), et les sauts de ligne.

Sur les systèmes de type GuyLux ( *nix, *inux), une fin de ligne se marque par le simple ´\n´, tandis que sous Win, une fin de ligne se décompose en " ramène le charriot" soit ´\r´ puis " descend d´une ligne" soit ´\n´. Bien souvent les programmes réalisent la conversion ( edit, word), mais pas tout le temps ( notepad).

La fonctionnalité " saut de ligne" n´est donc pas le même selon où on compile son programme.

De plus, il faut bien comprendre que endl est un manipulateur, pas un simple macro définissant la manière de sauter une ligne ( ´\n´ ou " \r\n"). On peut l´appeler par cout<<endl ou endl(cout) ce qui a strictement le même effet.

Par contre, sur un iostream tamponné ( ou buffered ou bufferisé, c´est selon), endl provoque également un " coup de chasse" ( ou flush, c´est selon aussi) qui consiste à envoyer d´un coup tout ce qui s´était accumulé jusque là ( sans s´afficher pour cout, sans s´écrire pour un fichier).

J´espère avoir été clair.

Tu auras sans aucun doute un comportement correct de cout<<´\n´, mais c´est " sale" et une habitude à ne surtout pas prendre.

VictorVVV
VictorVVV
Niveau 6
21 juillet 2003 à 18:21:09

Je remarque rien de différent avec notepad quqnd on fait entree que avec word. Je ne vois donc pas l´utilité d´utiliser endl.

Manest2
Manest2
Niveau 9
21 juillet 2003 à 18:54:17

Word met des caracteres invisibles partout. Il ne faut donc JAMAIS programmer avec.
On le constate facilement en faisant des copier coller d´un texte word...

Nesca
Nesca
Niveau 5
21 juillet 2003 à 19:09:17

Pour notepad, je vais faire un effort d´explication :
1- " clic droit" sur ce lien : http://www.nescafe.free.fr/public/endl.txt
2- " enregistrer sous", où tu veux ( attention, n´ouvre pas le fichier tout de suite)
3- ouvre avec notepad
4- compare avec wordpad

Ce fichier a été transféré en mode texte sur un hébergeur unix, et ses sauts de ligne ont donc été convertis en simple ´\n´ au lieu du " \r\n" habituel de windows. Attention de ne pas cliquer directement sur le lien et de bien l´enregistrer, autrement ton navigateur ( sous windows) va interpréter le fichier, corriger l´erreur, et tu ne verras donc pas le problème.

Pour les flux bufferisés, sache juste qu´ils ont l´incroyable avantage d´être corrigeables ( on annule un ou des caractères venant d´être saisis et pas encore transmis) et plus rapide ( il est plus simple pour le système de positionner la tête d´écriture du disque dur et d´écrire 1000 octets que de positionner la tête, d´écrire 1 octet, positionner la tête, écrire 1 octet, positionner la tête, écrire 1 octet, positionner la tête, écrire 1 octet, etc...

ENDL sert alors à dire " une ligne est finie, tu peux en profiter pour écrire un bloc". Note simplement que cela ne concerne pas les flux non-bufferisés.

Nesca
Nesca
Niveau 5
21 juillet 2003 à 19:12:16

URL CORRECTE : http://www.nescafe.free.fr/public/endl.htm

( Spéciale dédicace à la redirection sans header de JV.com)

freedix
freedix
Niveau 10
21 juillet 2003 à 19:46:06

OK, Merci à tout le monde :)

JeanYvesYves
JeanYvesYves
Niveau 10
22 juillet 2003 à 09:16:15

moi je dis vive printf :lol:

Lightness1024
Lightness1024
Niveau 10
22 juillet 2003 à 10:43:28

ta bien raison ca pu du q les stream.

JeanYvesYves
JeanYvesYves
Niveau 10
22 juillet 2003 à 11:49:47

vi :) au moins, manipulation des char*, tu sais ce que tu fais :)
et tu y manipules comme tu veux, c´est pas des classes, donc pas de champs privés, un petit pointeur et boom ! tu vas ou tu veux :)

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