Extraire caractères fichier .txt
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:
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:
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.