J'ai un petit souci avec un programme tout simple, dont voici la source :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iomanip>
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
 
 
int main(int argc, char** argv)
{
string filein;
string fileout;
int i;
 
if(argc==1) filein=argv[1];
else {
	cout << "La syntaxe est : cara2mgs nomfichier.dat" << endl;
	return 0;
	}
 
i=filein.find('.');
fileout=filein;
fileout.replace(i+1, 3, "mgs");
cout << fileout << endl;
 
return 0;
}

lorsque je compile le code, voilà ce que j'obtiens :


[localhost Linux-g++]$ g++ -I/usr/include -L/usr/lib -lm -o cara2mgs cara2mgs.cc
cara2mgs.cc: In function ‘int main(int, char**)’:
cara2mgs.cc:10: erreur: ‘string’ was not declared in this scope
cara2mgs.cc:10: erreur: expected `;' before ‘filein’
cara2mgs.cc:11: erreur: expected `;' before ‘fileout’
cara2mgs.cc:14: erreur: ‘filein’ was not declared in this scope
cara2mgs.cc:16: erreur: ‘cout’ was not declared in this scope
cara2mgs.cc:16: erreur: ‘endl’ was not declared in this scope
cara2mgs.cc:20: erreur: ‘filein’ was not declared in this scope
cara2mgs.cc:21: erreur: ‘fileout’ was not declared in this scope
cara2mgs.cc:23: erreur: ‘cout’ was not declared in this scope
cara2mgs.cc:23: erreur: ‘endl’ was not declared in this scope

je précise que j'ai rajouté les options -I et -L après avoir essayé simplement :
g++ -lm -o cara2mgs cara2mgs.cc

aurais-je oublié quelque chose?
je parie que je vais avoir honte quand vous me donnerez la solution


balise [code] rajoutée par r0d, merci d'y penser la prochaine fois.