|
|
|
|
salut
cou<<"texte"; c bon mais apres je crois que tu t trompe dans cout<<variable; c plutot cin>>variable; |
Bonjour Ender,
Non, en fait cout<< sert à afficher quelque chose (sortie sur l'écran) tandis que cin>> sert à entrer quelque chose (entrée par le clavier). Dans mon cas, peu importe que variable ait fait l'objet d'une entrée clavier ou qu'il s'agisse d'une constante, le fait est que je ne peux pas sortir à l'écran ni une chaîne de caractères, ni un caractère, ni une variable chaîne, ni une variable numérique (idem pour les constantes). En DEV C++, le compilateur me dit qu'il y a une erreur avant le <<. Il ne semble pas reconnaître cout. Pourtant je déclare bien en tête : #include <iostream> using namespace std J'ai même essayé en remplaçant iostream par cstdio, par iostream.h, et d'autres tentatives encore mais toujours sans succès. Je n'y comprends rien. Bon, merci quand même Ender d'avoir voulu m'aider. Dragonban, le petit Dragon d'Internet |
Message d'erreur? |
Bonjour Bob,
Dev C++ me dit en fait quelque chose dans le genre : parse error before < et lorsque je clique sur ce message, il me surbrille la ligne cout correspondante Merci si tu peux m'aider |
parse error: erreur de séparation en générale c'est du type une '}' ou un ';' en trop ou manquant. A mon avis c'est peut être plus haut dans ton code à voir ... |
Voici ci-dessous un projet c++ qui affiche une erreur :
#include <iostream> using namespace std int main(a=5;) { cout<<a; return 0; } Erreur affichée : parse error before 'int' _____________________ extrait d'un autre projet : #include <iostream> using namespace std // _______________ DECLARATION DES VARIABLES float a,b,c; Erreur affichée parse error before 'float' |
Grosse conewi -> int main(a = 5;)
Entre () d'une fonction on met des arguments tel que (signed int x, char c, ...) jamais on ne mets d'affectation de variable seulement une définition d'arguments qui peuvent être par la suite utilisé dans le bloc commençant par '{' et qui se termine par '}'. Voici ce que tu aurais du écrire: #include <cstlib> // en-tête pour EXIT_SUCCESS #include <iostream> // en-tête pour cout signed int main() { int a; // déclaration de la variable a = 5; //affectation de la variable std::cout << a << '\'n; // utilisation de la fonction cout de la classe standard return EXIT_SUCCESS; // macrosubstitution qui remplace 0 et elle est définie dans l'en-tête cstdlib } Considère une fonction comme une grosse boite à opérations dont son type définit le type de la valeur de sortie et les arguments sont les entrées. Pourquoi tu n'apprends pas le C avant de foncer tête baissé sur le C++ qui s'appuie fondamentalement sur le C en lui ajoutant des fonctions supplémentaire ainsi que certaines notions d'objet, c'est pour faire comme tout le monde? |
Boulette -> '\n' au lieu de '\'n |
Salut à tous les deux.
J'ai propgrammé en C++ plusieurs fois, et je n'ai pas utilisé, pour de simples programmes d'entrée/sortie de namespace. D'ailleurs, je ne sais pas trop à quoi cela sert. Je mettais en général #include <iostream.h> int main(void){ ..... .... .... return 0; } Mais je ne suis pas contre que vous m'expliquiez ce que unsing namespace signifie. Par contre, pour résoudre le PB, peut-être suffit-il de ne pas spécifier cette ligne. Merci. @+ |
using namespace std;
signifie utiliser l'espace de nommage de la classe standard soit si l'on souhaite utiliser par exemple une fonction printf définie dans la classe perso alors elle sera considéré comme standard et non perso ce qui est tout de même pas la même chose. L'utilisation de ces 2 fonctions sera soit: using namespace std; printf("le printf standard"); soit: using namespace perso; printf("le printf perso"); soit: std::printf("le printf standard"); perso::printf("le printf perso"); Et le C ça ne te tente pas? |
Bonjour Bob,
Merci pour ton aide. En fait, j'avais voulu commencer par le C mais un copain programmeur m'a dit que le C était dépassé et que plus grand monde aujourd'hui programmait en C. En revanche, le C++ et le Java sont très utilisés. Il m'a encouragé donc à les apprendre. Le problème, c'est qu'apparemment dans les ouvrages de C++, ils considèrent qu'on connaît déjà le C, donc leurs explications sont assez obscures, pour ne pas dire hermétiques au néophyte. Et encore, je ne parle que des ouvrages pour débutant ! Dragonban, le petit Dragon d'Internet |
Bob,
Je viens de mettre ton code dans le Dev c++ et de le compiler et il m'affiche qu'il ne reconnaît pas le <cstlib> Alors j'ai supprimé la ligne #include <cstlib> et remplacé return EXIT_SUCCESS; par return 0; Et là, Ô miracle, ça marche. Pourquoi est-ce qu'il ne reconnaît pas cstlib ? Merci encore Dragonban, le petit Dragon d'Internet |
Parce que comme un blaireau j'ai écris comme un sauvage :-$ essai avec <cstdlib> |
Ok
Ah, je viens de revoir le projet dont j'ai mis un extrait en second exemple et viens de m'apercevoir de quelques petites choses qui m'ont fait passer de 31 erreurs à 5 erreurs (je les expose ici pour ceux, grands débutants comme moi, que cela intéresse) : - Faire attention de ne pas écrire trop vite afin de bien respecter la casse des variables (case sensitive) - Ne pas mentionner le type de la variable dans le cout. Elle a déjà été déclarée avec son type, il n'est donc plus nécessaire de répéter son type lors de sa sortie - Faire attention aux formules : même si en math 2xa = 2.a = 2a, en langage de prog cela doit s'écrire 2*a. (2a étant interprété comme une donnée hexadécimale). Merci Dragonban, le petit Dragon d'Internet |
Merci à Bob pour ses éclaircissements.
@+ Roulito |
De rien ça coûte pas chère! :-D |
Essaye d'inclure la librairie: #include<owlall.h>
en ce qui concerne les variables il faut utiliser cin<< |
Merci Redha mais tout va bien. J'ai pu rectifier toutes mes erreurs et n'ai plus de problème. Enfin, pour l'instant ...
Dragonban, le petit Dragon d'Internet |
Ta jamais essayer de mettre un point virgule ( ; ) après std lol peut être que ca fonctionnerais. Et biensur de l'enlever apres ton a=5
en gros ca donne ca #include <iostream> using namespace std; int main(int a=5) { cout<<a; return 0; } et la ca marche. |
| 08/11 22h53 | [Shell] Transferer des fichiers via ssh | Shell |
| 27/10 00h37 | [PHP] Les ressemblances à ne pas confondre | PHP |
| 29/04 20h40 | Avast familial : renouveler / enregistrer sa clé de licence | Virus |
| 23/02 18h14 | Problème entre les réglages clavier Gnome/X-Windows | Ubuntu |
| 09/04 19h49 | Passer le son de l'ordi sur une chaîne hi-fi | Carte son |
| 19/09 21h28 | Raccordement sortie casque vers entrée micro | 5 |
| 20/02 03h40 | Entree/sortir sur C++ Builder | 1 |
| 12/10 16h04 | [AGP]carte graphique, conflit entrée/sortie | 3 |
| 21/06 12h48 | Entree/sortie en C sous Windows | 8 |
![]() | Widget Ciné TV - Regarder la télé sur votre écran d'ordinateur sans matériels supplémentaires! Il vous suffit uniquement de ce petit gadget !... | Catégorie: Personnalisation Licence: Freeware/gratuit |
![]() | Spamihilator - Spamihilator est un logiciel antispam fonctionnant entre le client de messagerie et Internet. Il examine chaque E-Mail... | Catégorie: Antispam Licence: Freeware/gratuit |
![]() | Auto Gordian Knot 2.45 - Pour extraire une bande son d'un DVD, il existe des solutions payantes, la principale étant DVD Audio Extractor, l'astuce a... | Catégorie: Extraction Licence: Freeware/gratuit |
![]() | aMule (Mac) - aMule est un client pour eD2k et réseau Kademia comme eMule mais avec plus de fonctionnalités : il supporte plusieurs... | Catégorie: Téléchargement Licence: Open Source |
![]() | Pouce Pouce: Entre Dans | Catégorie: Jeu vidéo PC | |
![]() | Sony CMT-CPZ2 | Catégorie: Chaîne Hi-Fi | 181.00 € Ubaldi |
![]() | Sony CMTU1 | Catégorie: Chaîne Hi-Fi | 217.68 € Dimipro |
![]() | Genius KB-C100 PS/2 | Catégorie: Clavier | 11.90 € MicroChoix |