Bonjour,
J'ai un fichier texte :
6 4
######
# ##
# # #
######
Et je dois récupérer le premier et le deuxième chiffre dans deux variables.

J'ai fais ceci, c'est un peu laborieux mais, je n'arrive pas à utiliser l’opérateur "<<".
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
27
28
29
30
31
32
33
34
35
 
    const string Nom_fichier="./terrain.txt";
    string ligneCourante;//Chaine de caractère qui contien le ligne actuelle
    ifstream fichier;// Création du fichier
 
    fichier.open(Nom_fichier.c_str());//Ouverture du fichier
    if(!fichier.is_open())//Vérification de 'louverture du fichier
    {
        cout<<"Impossible d'ouvrir le fichier"<<endl;
        return false;
    }
 
    getline(fichier, ligneCourante);
 
    size_t posSuivante = 0, pos=0;//Variable ressortant la position de l'espace
    bool Fin_de_la_ligne = false;//Si on a atteint la fin de la ligne
 
    vector <string> champs;//Création du tableau qui contiendra les paramètres récupéré
 
    while(!Fin_de_la_ligne)
    {
        posSuivante=ligneCourante.find(' ', pos);
        if(posSuivante!=string::npos)
        {
            champs.push_back(ligneCourante.substr(pos, posSuivante-pos));
            pos=posSuivante+1;
        }
        else
        {
            champs.push_back(ligneCourante.substr(pos, string::npos));
            Fin_de_la_ligne=true;
        }
    }
    largeur = atoi(champs[0].c_str());
    hauteur = atoi(champs[1].c_str());
Ça fonctionne mais je sais qu'il existe un moyen de le faire en deux trois lignes.

Ensuite, j'aimerais récupérer caractère par caractère et ligne par ligne pour créer une grille de jeu :
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
///Création du terrain
    char **terrain_defaut;
    terrain_defaut= new char*[hauteur];
    for(unsigned int i = 0; i < largeur; i++)
    {
        terrain_defaut[i] = new char[largeur];
    }
 
    terrain = new Case[largeur*hauteur];
 
    for(y=0;y<hauteur;++y)
	for(x=0;x<largeur;++x)
            if (terrain_defaut[y][x]=='#')//#, c'est le caractère a récupérer
                terrain[y*largeur+x] = MUR;
            else
                terrain[y*largeur+x] = VIDE;
Merci d'avance.