brice45
Messages postés14Date d'inscriptionmercredi 23 mai 2007StatutMembreDernière intervention13 août 2007
-
5 juin 2007 à 14:54
cs_Matt67
Messages postés549Date d'inscriptionsamedi 6 septembre 2003StatutMembreDerniè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;
HSylvio
Messages postés116Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention14 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
HSylvio
Messages postés116Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention14 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...
cs_Matt67
Messages postés549Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention 6 mars 20103 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.