Entrée-sortie en C++

Résolu/Fermé
Dragonban - 16 déc. 2003 à 18:55
 mamiemando - 26 oct. 2007 à 15:57
Bonjour à tous,

J'ai un problème de prog en c++.

Je commence mon fichier avec
#include <iostream>
using namespace std

mais lors de l'utilisation de cout<<"texte"; ou cout <<variable; le compilateur m'informe d'une erreur avant <. Autrement dit, il ne semble pas reconnaître le cout.

Pouvez-vous me dire pourquoi ?

Merci,

Dragonban

23 réponses

dragonban Messages postés 145 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 28 avril 2008 14
18 déc. 2003 à 10:40
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
2
Parce que comme un blaireau j'ai écris comme un sauvage :-$ essai avec <cstdlib>
1
dragonban Messages postés 145 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 28 avril 2008 14
18 déc. 2003 à 10:54
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
1
Merci à Bob pour ses éclaircissements.

@+
Roulito
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
De rien ça coûte pas chère! :-D
1
Essaye d'inclure la librairie: #include<owlall.h>

en ce qui concerne les variables il faut utiliser cin<<
1
dragonban Messages postés 145 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 28 avril 2008 14
18 déc. 2003 à 22:49
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
1
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.
1
salut
cou<<"texte"; c bon mais apres je crois que tu t trompe dans cout<<variable; c plutot cin>>variable;
0
dragonban Messages postés 145 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 28 avril 2008 14
17 déc. 2003 à 15:40
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
0
Message d'erreur?
0
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
0
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 ...
0
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'
0
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?
0
Boulette -> '\n' au lieu de '\'n
0
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.
@+
0
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?
0
dragonban Messages postés 145 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 28 avril 2008 14
18 déc. 2003 à 10:28
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
0
Si t'as besoin de quoi que ce soit sur le Langage C, C++, ou Visual C++, fait moi signe je pourrais t'aider.

Redha
0
Bonjour
J'effectue actuellement un stage en espagne et je dois programmer sur c++ builder. Il se trouve que je suis pas trés douer et je suis tomber sur ton msg, serais tu d'accord pour m'aider? Si t'est OK je te ferais part de mes questions.
Merci par avance.
CORDIALEMENT.
0