Les Allergies
Alimentaires
Posez votre question Signaler

EOF en langage C [Résolu]

samisafir 10Messages postés 19 février 2006Date d'inscription - Dernière réponse le 19 janv. 2010 à 11:02
en fait,je voulais tester un programme qui calcule le nombre de caracteres,et qui a comme condtion d'arret (EOF) qui marque la fin de fichier,mais pour tester lorsque je tape EOF pour marquer la fin ,rien ne passe.
merci
Lire la suite 

EOF en langage C »

Suggestions
15 réponses
Réponse
+1
moins plus
Moi je ferais même directement du fgetc.
#include <stdio.h>

int main(){
  unsigned int n=0;
  FILE *fp=fopen("plop.txt");
  while(fgetc(fp)!=EOF){
    ++n;
  }
  printf("n=%d\n",n);
  fclose(fp);
  return 0;
}

Bonne chance
Ajouter un commentaire
Réponse
+1
moins plus
Je te remercie pour l'information, parce que cela me posait problème également sous windows, mais saurais tu comment trouver la combinaison sous Linux ?
Ajouter un commentaire
Réponse
+1
moins plus
Linux étant un système UNIX, cela doit être Ctrl+D. Vas faire un tour sur cette page : http://en.wikipedia.org/wiki/End-of-file .
miminou - 6 mars 2009 à 17:23
bin pour Linux EOF est la combinaison CTRL+C . bon courage les jeunes
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Lorsque tu ouvres ton fichier, tu lui spécifie un nom du genre f et bien quand tu veux compter le nombre de caracteres il faut que tu places ce test dans un boucle while(f!=EOF)
Ajouter un commentaire
Réponse
+0
moins plus
Tout le monde aura naturellement corrigé :
FILE *fp=fopen("plop.txt");

par :
FILE *fp=fopen("plop.txt","r");

@+
fooxy - 19 janv. 2010 à 10:41
Problem de segmentation dans l''execution de ton programme.
mamiemando- 19 janv. 2010 à 11:02
Oui apparemment en 2006 je n'étais pas au meilleur de ma forme, je n'ai pas testé que le fichier avait été ouvert avec succès. Si le fichier n'existe pas ou qu'on n'a pas les droits en lecture, le fopen échoue et le fgetc plante.

#include <stdio.h>

int main(){
  unsigned int n=0;
  const char *filename="plop.txt";
  FILE *fp=fopen(filename,"r");

  if(!fp){
    fprintf(stderr,"can't open %s\n",filename);
    return 1;
  }

  while(fgetc(fp)!=EOF) ++n;
  printf("n=%d\n",n);
  fclose(fp);
  return 0;
}
Ajouter un commentaire
Réponse
+0
moins plus
mais vous n'avez rien résolu du tout :-( , moi j'ai le même problème, il s'agit de savoir quelle commande entrer dans la console pour spécifier qu'on est en fin de fichier sinon le programme ne renvoie pas le nombre de caractère ou de ligne compté.
ekra- 3 mai 2007 à 15:32
On parle de C ici, pas de console.
Et ta phrase ne veux pas dire grand chose. En tout cas la réponse du sujet est belle est bien donnée ci-dessus.
steve - 27 juin 2007 à 22:30
Pour répondre à reesh, si j'ai bien saisi sa question qui ne fait d'ailleurs pas directement référence à la programmation en C, sous windows, EOF (end of file) correspond à la combinaison Ctrl+Z.
Ajouter un commentaire
Réponse
+0
moins plus
Pour Linux EOF est la combinaison de CTRL+C bon courage les jeunes
fiddy- 6 mars 2009 à 17:53
Non, pour Linux, la combinaison clavier d'EOF est Control + d.
Ajouter un commentaire
Réponse
+0
moins plus
je parlé kon tu travail dn le terminal :)
fiddy- 6 mars 2009 à 18:36
Oui, dans le terminal ou ailleurs, la combinaison pour obtenir EOF sur gnu linux est control + d.
Ajouter un commentaire
Ce document intitulé « EOF en langage C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?