|
|
|
|
Bonjour les humains ! :-)
Dans la continuité de ce programme, j'essaie d'en créer un autre qui présente les caractéristiques suivantes.
- Lecture dans le fichier test.txt
- Récupération d'une ligne dans ce fichier
- Affichage de cette ligne sur le terminal
Voici mon fichier test.txt (les mots sont séparés par des retours à la ligne) :
ABATTRE ABORDER ACACIAS ACIDITE AJOUTER AMPOULE
#include <fstream>
#include <string>
#include <iostream>
int main()
{
std::ifstream fe("test.txt");
std::string ligne;
getline(fe, ligne); std::cout << ligne << std::endl;
getline(fe, ligne); std::cout << ligne << std::endl;
getline(fe, ligne); std::cout << ligne << std::endl;
system("Pause");
return 0;
}
Salut,
lami20j@debian:~/trash$ cat fic.txt
ABATTRE
ABORDER
ACACIAS
ACIDITE
AJOUTER
AMPOULE
lami20j@debian:~/trash$ cat ccm41_fgets.c
#include<stdio.h>
int main()
{
FILE *F;
char s[50];
if(NULL==(F=fopen("fic.txt","rb")))
return 1;
/* lecture de fichier */
while(fgets(s,50,F)!=NULL)
if(strcmp(s,"ACIDITE\n")==0)
printf("%s",s);
return 0;
}
lami20j@debian:~/trash$ gcc ccm41_fgets.c
lami20j@debian:~/trash$ ./a.out
ACIDITE
106485010510997108 |
Re,
lami20j@debian:~/trash$ cat fic.txt
ABATTRE
ABORDER
ACACIAS
ACIDITE
AJOUTER
AMPOULE
lami20j@debian:~/trash$ cat ccm42_fgets.c
#include<stdio.h>
int main()
{
FILE *F;
char s[50];
int i=0;
if(NULL==(F=fopen("fic.txt","r")))
return 1;
/* lecture de fichier */
while(fgets(s,50,F)!=NULL)
if(i++ == 3)
printf("%s",s);
return 0;
}
lami20j@debian:~/trash$ gcc ccm42_fgets.c
lami20j@debian:~/trash$ ./a.out
ACIDITE
106485010510997108 |
Bonjour Lami20j. ;-)
#include <fstream>
#include <iostream>
#include <set>
#include <string>
int main()
{
std::ifstream fe("test.txt");
std::string s;
int i; int j = 0;
std::cout << "Quel numero de ligne ? ";
std::cin >> i;
if (i < 0 || i > 20)
{
std::cout << "Numero de ligne inexistant" << std::endl;
system("Pause");
return 1;
}
while(j < i)
{
getline(fe, s);
j++;
}
std::cout << s << std::endl;
system("Pause");
return 0;
}
Merci beaucoup de m'avoir répondu ! :-) Cordialement. L'Ours Paddington Brown. |
Ah, j'ai réussi à créer une variante de ce programme. :-)
#include <fstream>
#include <string>
#include <iostream>
#include <set>
int main()
{
srand(time(NULL));
std::ifstream fe("test.txt");
std::string s;
int i = (rand() % 21);
/* La commande ci-dessus affecte la variable i d'un entier compris entre 0 et 20. */
/* Vous pouvez modifier la valeur selon le nombre de mots présents dans votre liste. */
int j = 0;
while(j < i)
{
getline(fe, s);
j++;
}
std::cout << s << std::endl << std::endl;
system("Pause");
return 0;
}
Encore merci à toi, Lami20j, d'avoir répondu à mon appel à l'aide. :-) Amicalement. L'Ours Paddington Brown. |