C Débutant: Comment faire une recherche pour les mots dans un fichier (ligne par ligne) dans le C
J'ai besoin à la recherche de deux mots en particulier dans un fichier ligne par ligne et, si elles existent, d'impression "Trouvé!".
C'est file.txt (a quatre colonnes)
bill gates 62bill microsoft
beyonce knowles 300mill entertainment
my name -$9000 student
Ce qui suit est l'idée que j'avais, mais il ne semble pas fonctionner
char firstname[];
char lastname[];
char string_0[256];
file = fopen("file.txt","r+");
while((fgets(string_0,256,file)) != NULL) {
//scans the line then sets 1st and 2nd word to those variables
fscanf(file,"%s %s",&firstname, &lastname);
if(strcmp(firstname,"beyonce")==0 && strcmp(lastname,"knowles")==0){
printf("A match has been found");
}
}
fclose(file);
S'il vous plaît aider. Se pourrait-il que le pointeur ne se déplace pas à la ligne suivante dans la boucle while? Et si oui, comment puis-je résoudre ce problème?
que faites-vous avec string_0, utiliser sscanf(string_9,"%s %s,&prenom,&nom)
Maintenant, je vois que je ne faisais rien. Tom Dignan m'a aidé. Merci
Maintenant, je vois que je ne faisais rien. Tom Dignan m'a aidé. Merci
OriginalL'auteur thecodefather | 2012-04-20
Vous devez vous connecter pour publier un commentaire.
Au lieu de l'appeler
fscanf
sur lefile
après que vous avez déjà lues avecfgets
, vous devriez appelersscanf
sur lestring_0
variable que vous copiez les données dans votrefgets
appel.OriginalL'auteur Thomas Dignan
Une façon est d'utiliser le
fget
de la fonction et de la recherche de sous-chaînes dans le texte. Essayez quelque chose comme ceci:OriginalL'auteur Erwald