Votre question

Langage C - Afficher une ligne de fichier txt

Tags :
  • Programmation
Dernière réponse : dans Programmation
15 Avril 2008 10:15:03

Bonjour,

Je programme en C sous dev C++.

Jai un fichier fichiertournee.txt dont chaque ligne est ainsi faite :
un nombre entier suivi d'une tabulation puis d'une série de caracteres, d'espaces, de tabulations, de nombres dans le désordre et enfin un saut de ligne.
J'aimerai que l'utilisateur rentre un nombre, que le programme lise le fichier, reconnaisse le nombre voulu et affiche uniquement le reste de la ligne en question jusqu'au saut de ligne.

Je suis bloqué depuis longtemps dessus alors si vous pouviez me dépanner ça serait sympa !

Autres pages sur : langage afficher ligne fichier txt

15 Avril 2008 10:17:27

123 Ville 1 : Rouen Ville 2 : Verin

Voici au hasard une ligne du fichier.
Pouriez vous me montrer comment, lorque l'on rentre le nombre 123, afficher "Ville 1 : Rouen Ville 2 : Verin" svp ?
15 Avril 2008 10:43:35

utilise les fonctions suivantes :

fopen : ouverture du fichier
fscanf : lecture du fichier suivant une expression régulière

google > man fonction : donne les prototypes des fonctions

Contenus similaires
15 Avril 2008 11:04:06

Tu ne cherches que sur le tout premier nombre ?

Tu veux du C pure ou du C++ ?
15 Avril 2008 11:19:39

Je ne cherches que sur le premier nombre oui.
Je veut dur C pur svp.
Je ne peut pas utiliser fscanf car l'expression après le premier nombre n'est pas régulière.
Comment faire :(  ?
Anonyme
15 Avril 2008 11:34:27

tu fais une fonction f qui lit le 1er mot d'une ligne
et une fonction g qui mets dans un buffer le reste d'une ligne
tu compares ce que l'utilisateur entre avec chaque premier mot de ligne, dès que tu as ce mot tu appelles la fonction g.
teste les fonctions séparément ...
15 Avril 2008 11:44:33

un peu que c'est une regexp...

essaie :
  1. int *id;
  2. char *ville1, *ville2, *ville3;
  3.  
  4. fscanf(file, "%d\t%s:%s:%s\n", id, ville1, ville2, ville3);
  5.  
  6. tu devrais récupérer dans les différentes variables les bonnes données.
15 Avril 2008 11:45:24

Non je ne peut pas mettre ton code Vinz42 car parfois , apres le nombre, il y a autant de ville que l'on veut. Parfois 1, 2 ou 3 ou 10, etc...
15 Avril 2008 11:46:59

ps : attention, sous windows, le retour à la ligne est \r\n (ou l'inverse, je ne sais jamais).
15 Avril 2008 13:36:46

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char** argv) {
  5. if(argc != 3){
  6. fprintf(stderr,"\nUtilisation du programme : %s fichier numero\n", argv[0]);
  7. return EXIT_FAILURE;
  8. }
  9.  
  10. int numero = atoi( argv[2] );
  11.  
  12. char ligne[256];
  13.  
  14. FILE *f = fopen( argv[1], "rt" );
  15. if (f==NULL) {
  16. fprintf(stderr,"\nerreur ouverture du fichier %s\n", argv[1]);
  17. return EXIT_FAILURE;
  18. }
  19.  
  20. while (fgets( ligne, 256, f ) != NULL) {
  21. int numero2 = 0;
  22. int length=0;
  23.  
  24. while ( length<256 && ligne[length]!= ' ' && ligne[length]!= '\t' ) length++;
  25. if(length == 256) continue;
  26. char num[length];
  27.  
  28. int i;
  29. for(i=0; i<length; i++) num[i] = ligne[i];
  30.  
  31. numero2 = atoi(num);
  32.  
  33. if(numero == numero2) printf("%s\n", ligne);
  34. }
  35.  
  36. fclose(f);
  37.  
  38. return EXIT_SUCCESS;
  39. }


un ptit truc vite fait pendant ma pose de bouffe ...
15 Avril 2008 15:25:08

ok merci. je vais essayer de comprendre !
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS