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

  • Votes
  • Date
  • Date décroissante
  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. 
    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é!"; }
      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])
        1. Hallu,

          Tu peux faire :

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

          }