TUTORIAL INPUT, AFFICHAGE TEXTE, VARIABLES, CONDITIONS

neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006 - 28 mai 2004 à 22:27
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 29 août 2004 à 23:24
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

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

string texte("Moi c'est BOBY"); appel du constructeur sur const char*
cs_jeep05 Messages postés 24 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 24 juillet 2005
29 août 2004 à 23:23
on peut faire ca avec tous les types de variables ?
dans quel cas vaut-il mieux utiliser cette syntaxe ?
cs_jeep05 Messages postés 24 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 24 juillet 2005
29 août 2004 à 23:22
ca donne le meme résultat.
J'ai du mal à saisir la différence ?
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
29 août 2004 à 23:02
non on ecrit string texte("Moi c'est BOBY");
pour eviter creation temporaire/copie inutile d'objet string
cs_jeep05 Messages postés 24 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 24 juillet 2005
29 août 2004 à 22:55
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";
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
29 août 2004 à 22:44
mais la c'est du C donc on utilise pas cout,cin
cs_jeep05 Messages postés 24 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 24 juillet 2005
29 août 2004 à 22:40
je parlais du C++ car c'est le langage que j'apprends.
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
29 août 2004 à 22:09
attention, cout et cin ca existe pas en C
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
29 août 2004 à 19:12
bien sûr :) regarde mes sources récentes pour exemple ! là c'est une autre façon de faire :] qui marche aussi.
cs_jeep05 Messages postés 24 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 24 juillet 2005
29 août 2004 à 18:46
pourquoi ne pas utiliser count << et cin >> pour afficher et récupérer les infos ?
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
3 juin 2004 à 17:44
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 !
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
2 juin 2004 à 22:29
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é
}


}
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
2 juin 2004 à 21:25
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 !
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
2 juin 2004 à 19:56
"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 !
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
2 juin 2004 à 16:41
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.
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
1 juin 2004 à 20:49
me suis trompé

if( ...) { ... } // c'est pas obligatoire si ya qu'une seule instructions
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
1 juin 2004 à 20:48
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 ?
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
1 juin 2004 à 20:39
MAJ :
- fichier .zip de 152 Ko -> 33.3 Ko (source + executable)
- légère correction du code
- nouvelle image ...
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
29 mai 2004 à 23:08
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 ...
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
29 mai 2004 à 22:30
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
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
29 mai 2004 à 13:26
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
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
29 mai 2004 à 12:31
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 ??
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
29 mai 2004 à 12:16
à 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 !
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
29 mai 2004 à 10:55
si, ya getchar() par exemple
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
29 mai 2004 à 10:46
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 ?
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
29 mai 2004 à 10:14
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
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
29 mai 2004 à 10:05
Voilà une petite MAJ :
- correction d'erreurs éventuelles
- condition if-else
- affichage puts (merci Djl) :)

et donc un "dialogue" toujours plus fleurissant :D :D
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
29 mai 2004 à 09:30
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)
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
29 mai 2004 à 08:48
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 :(
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
28 mai 2004 à 22:52
sinon tu voulais que ta source soit compatible c ansi (portabilité maximale) ou c99 (dernier standard) ?
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
28 mai 2004 à 22:46
merci pour l'info, je l'utiliserai dans la prochaine MAJ =)
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
28 mai 2004 à 22:42
pour afficher du texte (chaine literale ou char*) c'est puts (sans le '\n')
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
28 mai 2004 à 22:27
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 ...
Rejoignez-nous