Problème en C

Fermé
Utilisateur anonyme - 24 janv. 2003 à 14:28
 Haiti - 24 janv. 2003 à 17:39
j'ai un problème en C. je veux faire un programme qui cherche un etoile dans un fichier texte et un fois qu'il l'a trouvée j'aimerai qu'il s'arrete. mes connaissance en C étant limité je ne comprend pas pour quoi mon prog ne fonctionne pas. voila le prog que j'ai écrit .

je remercie d'avance toute personne qui m'aideront.


#include <conio.h>
#include <stdio.h>
#include <iostream.h>
int main(void)
{
FILE *file;

char szBuffer[79];

char filename[200];

clrscr();
cout<<("\nVeuillez entrer le nom du fichier : ");
cin>> filename ;
file = fopen(filename, "r");

char etoile[]="*";

while (!feof(file))
{
fread(&szBuffer, 1, 1, file);

if (szBuffer==etoile) {cout<<"etoile trouvé!"; }
//j'aimerai qu'il trouve l'etoile
//dans le fichier texte et qu'il
//arrète la boucle



}




cout<<"fin";


}

4 réponses

fou2dodie Messages postés 605 Date d'inscription mercredi 6 juin 2001 Statut Membre Dernière intervention 29 août 2006 33
24 janv. 2003 à 14:43
je sais pas je mettrais simplement

while (!feof(file) or szBuffer==etoile)
{
fread(&szBuffer, 1, 1, file);
}
if (szBuffer==etoile) {
cout<<"etoile trouvé!";
}

ça pourrait marcher nan?
attention je suis pas un crack donc je dis ça comme ça, sans trop être sur, mais bon t'as rien à perdre à essayer!
si ça marche dis le moi!

LMCT

All I know is I’m in love 
with someone who loves me too. 
0
Utilisateur anonyme
24 janv. 2003 à 15:08
ben malheureusement ca ne marche pas, la boucle foncionne mais mais le message "etoile trouvé ne s'affiche pas.



char etoile[]="*";

while (!feof(file)||(szBuffer==etoile))
{
fread(&szBuffer, 1, 1, file);
}

if (szBuffer==etoile){cout<<"etoile trouvé!"; }
0
1. pourquoi char etoile[]="*"; plutot que char etoile='*';
pas de guillemet juste une cote et pourquoi etoile en tableau?

2.
if (szBuffer==etoile) ne peut pas fonctionner c comme si tu faisai
if (&szBuffer[0]==&etoile[0]) et toi ceux que tu veux c'est :

if (szBuffer[0]==etoile[0])
0
Hallu,

Tu peux faire :

while (!feof(FP))
{
if( (c=fgetc(FP)) == '*' )
{
cout << "etoile trouvé!";
exit(0);
}

}
0