Lire une variable

brice45 Messages postés 14 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 13 août 2007 - 5 juin 2007 à 14:54
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 - 13 juin 2007 à 22:00
Bonjour,


J'ai besoin de lire un mot que je connais dans un fichier texte;


est ce que gets est la bonne solution?

Pouvais vous me montrer un petit exemple svp

merci d'avance

4 réponses

brice45 Messages postés 14 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 13 août 2007
5 juin 2007 à 14:57
Petite précision je programme en langage c....
0
HSylvio Messages postés 116 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 14 juin 2012
6 juin 2007 à 15:51
Tu peux utiliser getLine()
ifstream infile ("filename", ios::in);
cin >> str; // lecture du nom de fichier
ifstream inFile;
inFile . open (str, ios::in);
if (outfile) {...};
if (infile) {...};
infile >> str;
outfile << str;
infile . getline (str, 80, '\n');

Tu as donc la prochaine ligne dans str; ensuite tant que str n'est pas finie,
j=i; // j est alors le numéro du caractère du mot que tu compares avec le tien
while(str[i]!=' '),
while(str[i] == str[i-j] && (i-j)<{taille du mot que tu cherches})
i++;
Vérifies que le caractère est identique
n'oublies pas de mettre un booléen au cas où tu aies trouvé "mage" pour "magicien" ou "pars" pour "part"

Tu peux commencer par t'assurer de la longueur des mots pour peut etre gagner du temps avant de comparer chaque caractere
0
HSylvio Messages postés 116 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 14 juin 2012
6 juin 2007 à 15:59
Mais il n'y a pas moyen d'importrer string.h???
Dans ce cas tu n'auras pas à comparer caractere par caractere et tu pourras découper ta ligne à chaque espace en 2 lignes de code.

Sinon je sais pas dans quel cadre tu essaies de faire ca mais penses au cas où il n'y a pas la place suf-
-fisante sur une ligne...
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
13 juin 2007 à 22:00
Bonsoir,

Heureusement que tu as précisé que tu programmais en C sinon HSylvio t'aurait donné la soluce en C++

Quelques petites questions :
Ton fichier est il gros ?
Est que tu veux savoir si ton mot est dans ton fichier (une fonction qui retourne oui/non) ou alors tu veux recuperer le mot (remarque, apparement tu le connais) ?

ne pas utiliser gets mais plutot fgets.

si fichier pas trop gros, tu le charges en memoire et tu fais un strstr.
Sinon, tu lis ton fichier bloc par bloc (en chevauchant pour ne pas couper ton mot) et toujours un strstr.

Matt...
0