PB Structures, Headers, string

Signaler
Messages postés
17
Date d'inscription
samedi 11 octobre 2003
Statut
Membre
Dernière intervention
3 mai 2005
-
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
-
Bonjour, j'ai plein d'erreurs à la compilation de deux fichiers:

voici agenda.h:
#include <stdio.h>
#include 
#include <string> 
#include <fstream.h>

struct TAgenda {
  string nom; // nom de l'utilisateur
  string fic;  // fic est le nom de fichier qui sera utilisé pour sauvegarder au format html
};

void initAgenda(TAgenda& agenda);
bool sauvegarderAgenda(TAgenda& agenda);


voici agenda.cpp:

#include "agenda.h"

void initAgenda(TAgenda& agenda){

    cout << "Nom de l'utilisateur: ";
    cin >> agenda.nom;
    cout << endl << "Nom du fichier de sauvegarde: ";
    cin >> agenda.fic;
    cout >> endl;
    
}

bool sauvegarderAgenda(TAgenda& agenda){

    fstream f;
    f.open(agenda.fic.c_str(), ios::in);
    if (f.fail()) { 
        cerr << "Erreur dans l'ouverture en écriture du fichier " << agenda.fic << ". "<< endl;  
        return false;
            }
    f.close();
        

}

int main(){
struct TAgenda mon_agenda;
mon_agenda.fic= "nomdefichier";
sauvegarderAgenda(mon_agenda);
return 0;
}


A la compilation sous Dev C++, j'ai des erreurs du type:
- 'string' is used as a type, but is not defined as a type.
-7
`struct TAgenda' has no member named `nom' // ou `fic'

J'aime pas Dev C++, mais j'ai foiré ma partoch mandrake et donc suis obligé de faire avec. Merci de m'éclairer sur mes erreurs.

6 réponses

Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
salut,
using namespace std; pour utiliser std::string
Messages postés
17
Date d'inscription
samedi 11 octobre 2003
Statut
Membre
Dernière intervention
3 mai 2005

Salut, ca sert a quoi
- using namespace std; ?
- std::string ?

Merci.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
la classe string apartient a l'espace de nommage std
pour y acceder tu precise alors l'espace de nommage
tu pourrai aussi faire using std::string;
Messages postés
17
Date d'inscription
samedi 11 octobre 2003
Statut
Membre
Dernière intervention
3 mai 2005

Ok, on a pas encore vu les classes en cours, c'est pour ca que j'utilise des structures. ;-)
Messages postés
17
Date d'inscription
samedi 11 octobre 2003
Statut
Membre
Dernière intervention
3 mai 2005

Encore un problème de déclaration :blush)

j'ai déclaré ca dans un header:
#include <string>

enum TMois { janvier, fevrier, mars, avril, mai, juin, juillet, aout, septembre, octobre, novembre, decembre};

struct TSemaine{
  int numeroJour;
  int annee;
  TMois mois;
  std::string tab[8][7];     //ca va pas
};


Sans std::string, il me sort à la compil qu'il y a une erreur avant `['.
Avec std::string il sort: [Linker error] undefined reference to `WinMain@16'

Pouvez m'expliquer dans quelle direction chercher quand j'ai une erreur de lien ?
Et sinon comment utiliser dans ma structure un tableau de string ?
Je vous remercie :)
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
je comprend pas tes profs, autant programmer en c et ne pas se faire chier avec les string si ta aucunes notions de poo, utilise plutot des char*

c bien comme tu fait std::string
pour ton link error je dirait que c'est parce que ta compiler une source sans main