Problème en C
coluche
-
Haiti -
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";
}
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
-
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. -
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. 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]) -
Hallu,
Tu peux faire :
while (!feof(FP))
{
if( (c=fgetc(FP)) == '*' )
{
cout << "etoile trouvé!";
exit(0);
}
}