rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Entrée-sortie en C++

Dragonban, le mardi 16 décembre 2003 à 18:55:27
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
Répondre à Dragonban  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ender, le mercredi 17 décembre 2003 à 14:10:55
salut
cou<<"texte"; c bon mais apres je crois que tu t trompe dans cout<<variable; c plutot cin>>variable;
Répondre à ender

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dragonban, le mercredi 17 décembre 2003 à 15:40:42
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
Répondre à dragonban

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bob, le mercredi 17 décembre 2003 à 22:08:19
Message d'erreur?
Répondre à Bob

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dragonban, le mercredi 17 décembre 2003 à 22:30:03
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
Répondre à Dragonban

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bob, le mercredi 17 décembre 2003 à 22:35:36
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 ...
Répondre à Bob

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dragonban, le mercredi 17 décembre 2003 à 23:11:12
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'
Répondre à Dragonban

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bob, le mercredi 17 décembre 2003 à 23:32:01
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?
Répondre à Bob

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bob, le mercredi 17 décembre 2003 à 23:33:34
Boulette -> '\n' au lieu de '\'n
Répondre à Bob

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Roulito, le jeudi 18 décembre 2003 à 08:52:51
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.
@+
Répondre à Roulito

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bob, le jeudi 18 décembre 2003 à 09:11:30
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?
Répondre à Bob

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dragonban, le jeudi 18 décembre 2003 à 10:28:13
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
Répondre à dragonban

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dragonban, le jeudi 18 décembre 2003 à 10:40:35
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
Répondre à dragonban

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bob, le jeudi 18 décembre 2003 à 10:49:23
Parce que comme un blaireau j'ai écris comme un sauvage :-$ essai avec <cstdlib>
Répondre à Bob

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dragonban, le jeudi 18 décembre 2003 à 10:54:34
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
Répondre à dragonban

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Roulito, le jeudi 18 décembre 2003 à 13:50:06
Merci à Bob pour ses éclaircissements.

@+
Roulito
Répondre à Roulito

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bob, le jeudi 18 décembre 2003 à 14:48:10
De rien ça coûte pas chère! :-D
Répondre à Bob

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Redha, le jeudi 18 décembre 2003 à 18:20:57
Essaye d'inclure la librairie: #include<owlall.h>

en ce qui concerne les variables il faut utiliser cin<<
Répondre à Redha

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dragonban, le jeudi 18 décembre 2003 à 22:49:15
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
Répondre à dragonban

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Joker, le vendredi 19 décembre 2003 à 20:52:12
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.
Répondre à Joker
Logiciels pertinents trouvés dans les téléchargements
Télécharger Widget Ciné TV 4.3.4Widget 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
Télécharger Spamihilator 0.9.9.43Spamihilator - Spamihilator est un logiciel antispam fonctionnant entre le client de messagerie et Internet. Il examine chaque E-Mail...Catégorie: Antispam
Licence: Freeware/gratuit
Télécharger Auto Gordian Knot 2.45 Version: 2.45Auto 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
Télécharger aMule (Mac) 2.2.2aMule (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
Plus de logiciels gratuits sur « Entrée sortie en C++ »