Problème en C

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. 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
    1. 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. 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
        1. Hallu,

          Tu peux faire :

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

          }
          0