Problème en C

coluche -  
 Haiti -
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

  1. fou2dodie Messages postés 606 Statut Membre 33
     
    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
  2. coluche
     
    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
  3. brj
     
    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
  4. Haiti
     
    Hallu,

    Tu peux faire :

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

    }
    0