Liverion
Messages postés296Date d'inscriptionmardi 22 avril 2008StatutMembreDernière intervention18 août 2008 11 juil. 2008 à 14:00
et si tu avais pas remarqué c'est une partie du code que tu as mis a laquelle j'ai juste rajouté un if et une variable, par contre j'ai oublié le i++; avant de sortir du while. Donc au final :
int main()
{
int n = 3; // si on veut recuperer la 3 eme ligne
int i = 0;
// le constructeur de ifstream permet d'ouvrir un fichier en lecture
std::ifstream fichier("strtok esséye.txt");
if( fichier )// ce test échoue si le fichier n'est pas ouvert
{
std::string ligne; // variable contenant chaque ligne lue
// cette boucle s'arrête dès qu'une erreur de lecture survien
while( std::getline( fichier, ligne ))
{
if(i == n )
{
// afficher la ligne à l'écran
std::cout << ligne << std::endl;
}
i++;
}
}
}
~~
Les trois lois de Codes-Sources :
Loi 1) Tu lis et respectes le reglement
Loi 2) Tu penses à valider si une reponse apportée à ton problème t'a aidé
Loi 3) Si tu ne respectes pas les 2 premières ....TU SORS !!
Liverion
Messages postés296Date d'inscriptionmardi 22 avril 2008StatutMembreDernière intervention18 août 2008 11 juil. 2008 à 13:33
Pour lire ton fichier, imaginons que tu aies fait f = fscanf("montexte.txt");
Alors il te suffit de faire :
int i = 0;
for (i=0; i<n-1;i++)
{
f.Read();
}
maligne = f;
ainsi tu recupereras la ligne que tu veux lire dans ta variable maligne.
PS : je t'ai donné la maniere de le faire, pas le code exact, je ne suis absolument pas sûr d'avoir respecté le prototype de la fonction fscanf.
~~
Les trois lois de Codes-Sources :
Loi 1) Tu lis et respectes le reglement
Loi 2) Tu penses à valider si une reponse apportée à ton problème t'a aidé
Loi 3) Si tu ne respectes pas les 2 premières ....TU SORS !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 11 juil. 2008 à 13:45
Ben tu ouvres ton fichier avec fopen
si fopen réussit: tu lis par bloc ton fichier que tu places dans ton buffer.
Puis tu parcours ton buffer à la recherche des \n
Liverion
Messages postés296Date d'inscriptionmardi 22 avril 2008StatutMembreDernière intervention18 août 2008 11 juil. 2008 à 13:46
int i = 0;
while
( std::getline( fichier, ligne ))
{
if(i == n )
{
// afficher la ligne à l'écran
std::cout << ligne << std::endl;
}
}
~~
Les trois lois de Codes-Sources :
Loi 1) Tu lis et respectes le reglement
Loi 2) Tu penses à valider si une reponse apportée à ton problème t'a aidé
Loi 3) Si tu ne respectes pas les 2 premières ....TU SORS !!
Liverion
Messages postés296Date d'inscriptionmardi 22 avril 2008StatutMembreDernière intervention18 août 2008 11 juil. 2008 à 13:58
ben normal, faut quand meme que tu remplaces le n dans mon if par le numero de ligne que tu veux recuperer ... (reflexion is your friend )
~~
Les trois lois de Codes-Sources :
Loi 1) Tu lis et respectes le reglement
Loi 2) Tu penses à valider si une reponse apportée à ton problème t'a aidé
Loi 3) Si tu ne respectes pas les 2 premières ....TU SORS !!