TUTORIAL INPUT, AFFICHAGE TEXTE, VARIABLES, CONDITIONS

Signaler
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006
-
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23211-tutorial-input-affichage-texte-variables-conditions

Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
char texte[25]=" Moi c'est BOBY"; // appel du constructeur par copie

string texte("Moi c'est BOBY"); appel du constructeur sur const char*
Messages postés
24
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
24 juillet 2005

on peut faire ca avec tous les types de variables ?
dans quel cas vaut-il mieux utiliser cette syntaxe ?
Messages postés
24
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
24 juillet 2005

ca donne le meme résultat.
J'ai du mal à saisir la différence ?
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
non on ecrit string texte("Moi c'est BOBY");
pour eviter creation temporaire/copie inutile d'objet string
Messages postés
24
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
24 juillet 2005

ah ok, ce qui explique également le

char texte[25]=" Moi c'est BOBY";

??
en C++ on l'écrit comme ca : ?

string texte = "Moi c'est BOBY";
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
mais la c'est du C donc on utilise pas cout,cin
Messages postés
24
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
24 juillet 2005

je parlais du C++ car c'est le langage que j'apprends.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
attention, cout et cin ca existe pas en C
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

bien sûr :) regarde mes sources récentes pour exemple ! là c'est une autre façon de faire :] qui marche aussi.
Messages postés
24
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
24 juillet 2005

pourquoi ne pas utiliser count << et cin >> pour afficher et récupérer les infos ?
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

grrrrr ^^

bon d'accord, la prochaine fois c'est ce que je ferais et si le compilateur m'indique une erreur, je saurais d'où ça vient !
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
non c'est pas une structure de controle mais c'est un bloc proceduriale (c'est une fonction) donc oui les accolade sont obligatoires et l'indentation est conseillé pour la clarté

mais ca
int CalculExemple ( int a, int b )
{

int variable;
{
// les accolades sont inutiles et
// dangeureuse pour la clarté
}


}
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

euh ben mince alors ! moi qui adore l'encapsulement ...
Pourtant je préfère programmer avec cette manière là ! c'est vraiment mieux structuré ! (enfin à mon goût visiblement ^^)

Par exemple,
est-ce cela que tu appelles structure de contrôle ? :

int CalculExemple ( int a, int b )
{
// la fonction
}

Car j'ai déjà vu cela dans un tutorial. Ca vient du fait que j'ai manger énormément de BASIC et que l'encapsulement est une des grandes nouveautés !
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
"Tu as raison mais bon ... un code bien structuré est plus facile à comprendre et vu que c'est un tutorial, il vaut mieux faire le plus structuré possible :)"

c'est bien vrai, sauf que la ton truc de créer un bloc pour rien (oui pourquoi au fait ?) alors que c'est résevé au structure de contole ca rend le code beaucoup moin clair

je sais pas à quel langage tu etait habitué avant mais c'est une habitude que tu devrais abandonner car je peux t'assurer que pour un programmeur c'est tres difficile à lire ca a chaque fois on s'attend a voir une structure de controle

conclusion, c'est tres dangeureux ton truc !
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

Tu as raison mais bon ... un code bien structuré est plus facile à comprendre et vu que c'est un tutorial, il vaut mieux faire le plus structuré possible :)

Par contre, j'ai quand même tenu compte de ta 2ème remarque à savoir :

"if( ...) { ... } // c'est pas obligatoire si ya qu'une seule instructions"

Donc j'ai expliqué dans ma source les deux manières : l'ancienne qui est toujours là et la nouvelle incrémentée deux fois vers la fin avec son équivalent ancien en commentaires.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
me suis trompé

if( ...) { ... } // c'est pas obligatoire si ya qu'une seule instructions
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
quand tu declare un entier, tu n'es pas obliger de créer un nouveau bloc

int nouvcondition;
{
...
}

met direct

int nouvcondition;
...


les blocs c'est pour les structure de controle

if( ...) { ... } // c'est pas obligatoire si ya plusieus instructions
d'accord ?
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

MAJ :
- fichier .zip de 152 Ko -> 33.3 Ko (source + executable)
- légère correction du code
- nouvelle image ...
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

et voilà !!! je n'ai pas trouvé de tables parfaites du code ASCII (y'en avait plein mais aucune était bonne, surtout les étendues) donc j'ai cherché au hazard en sachant que les lettres sont regroupées : ê,é,è,ë ...
et voilà mon tuto avec ses accents ! reste plus qu'un peu de couleur ...
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

Je sais que je peux afficher mes lettres "â,é,è..." mais il me faut écrire leur code ASCII alors je les cherche ...
Sinon je voulais mettre un peu de couleur aussi mais je viens de me rendre compte (d'après le forum) qu'il fallait sconio.h ... J'avais déjà essayé mais evidemment ça n'a pas marché car je n'avais pas ce fichier.
Mais je me dis que je ne dois pas trop sortir de mon tutorial non plus ! C'est un tuto pour "aider les débutants sur l'INPUT à partir du clavier, l'affichage du texte, les variables (chiffre et string) et les conditions ..." alors si je rajoute la couleur (qui reste du domaine de l'affichage) et les caractères "spéciaux" ... ça va faire un peu beaucoup ? :p
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

Bonne question :) j'ai vu ça comme ça, c'était plus propre mais je vois bien que cela fonctionne sans ...
voilà une MAJ avec deux autres conditions if
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
ta pas vu que tu fais avant "return entree;" // quitte le main

et j'ai pas conpris ce que tu voulais faire avec ce bloc ??
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

à la fin de ma source j'ai utilisé ton astuce :

// neo_00110010101@hotmail.com

getchar();

return 0;
}

Mais marche po ... (ça ne t'a jamais fait ça toi ? c'est XP car les autres OS marchent bien avec DOS) A moins que j'ai mal utilisé ton astuce !
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
si, ya getchar() par exemple
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

Encore une mise à jour, une !

Sinon j'ai un petit problème mais bon ce n'est pas vraiment très grave :
Lorsque je compile et execute mon programme sous VC++ 6.0, tout ce passe bien jusqu'à la fin du programme mais lorsque j'execute le même programme depuis le dossier "Debug" (à voir dans le zip) le programme se fini mal : on n'a pas le temps de voir la fin.
En fait, dès que j'entre mon âge pour la 2ème fois, le prog affiche la fin mais très vite et puis se ferme tout seul.
Je sais que ce n'est pas la 1ère fois que XP me "bouffe" des progs sous DOS mais c'est dommage ...
Donc n'y aurait-il pas de commande "PAUSE" comme en BASIC ?
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
lol, t'en a mis qu'un seul de puts, on dirais que t'aime pas !

non serieux met le a chaque fois que tu affiche un printf sans argument (autre que char*) c'est plus rapide
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

Voilà une petite MAJ :
- correction d'erreurs éventuelles
- condition if-else
- affichage puts (merci Djl) :)

et donc un "dialogue" toujours plus fleurissant :D :D
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
non ton prog est portable, c'est juste que seul le standard ansi peut t'assurer compatibilité avec n'importe quel compilo c.
aujourd'hui sous windows ou linux tous supportent à peu pres c99 (faut pas non plus sortir des compilos antiques comme tc++ ou autre)
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

Je n'avais pas remarqué que j'avais oublié de changer une phrase !
(la fonction SI devait avoir 2 choix mais j'en ai mis un 3ème ... et on considère que si on tape autre chose que 1,2 ou 3, le programme n'affichera rien de prévu à part "Au revoir" à la fin)

Sinon, je voulais que cette source soit lue (dans le sens "compilée") par le maximum d'utilisateurs (aussi bien VC++ que Borland ou DEV)
Donc "portablilité maximale" mais j'ai peur d'avoir à changer 75% de ma source pour ça :(
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
sinon tu voulais que ta source soit compatible c ansi (portabilité maximale) ou c99 (dernier standard) ?
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

merci pour l'info, je l'utiliserai dans la prochaine MAJ =)
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
pour afficher du texte (chaine literale ou char*) c'est puts (sans le '\n')
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

J'attends vos suggestions, vos idées, vos mécontentements aussi :]
N'hésitez pas !

J'ai peut-être déjà une idée de mise à jour ...