Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3776 connectés 

 


Dernière réponse
Sujet : [c] divers problèmes
chaica musaran : merci, le problème est reglé, ca roule maintenant.
 
CHaiCA

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
chaica musaran : merci, le problème est reglé, ca roule maintenant.
 
CHaiCA
Musaran Pour faire une pause, utilises ça:

Code :
  1. fflush(stdin) ; //vide le tampon d'entrée
  2. getchar() ; //attendre 1 char

Le vidage est quasi-obligatoire car le système d'E/S est un peu bogué...

chaica Merci à tous les deux.
Je vais bien mettre des free, pas de problèmes.
kjus : je pige pas quel \n fgets se prenait? celui du printf?
 
CHaiCA
kjus pour lorsqu'il saute le fgets, en fait celui-ci se prend le \n, donc il faut remplacer le fgets par exemple par :
if (getchar()=='\n')
   getchar;
 
voila
smaragdus Pour le reste, ça fait tellement longtemps que j'ai plus fait de mode console que je ne peux pas t'aider.
smaragdus
1) Pour la chaine entree :

Code :
  1. char* entree = (char*)malloc(1000 * sizeof(char));
  2. scanf("%s",entree);


 
doit fonctionner.
 
2) Ensuite : A quoi sert d'allouer un char pour resultat puisque c'est un pointeur ?  
 
3) 1 Malloc => 1 free !!!!!!!!  :fou:  

chaica Tout d'abord je n'arrive pas à passer en malloc la string entree, j'ai un segmentation fault si j'essaie.
 Ensuite j'ai placé un fgets en fin de programme pour demander de presser une touche avant de quitter.  
Or il saute cette étape alors qu'avant le scanf il le prend en compte. Bizarre...
Si quelqu'un a une idée
 
 
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int main()
  5. {
  6. char* essai  = (char*)malloc(1000 * sizeof(char));
  7. char entree[30];
  8. char* resultat = (char*)malloc(sizeof(char));
  9. char car;
  10. FILE *stock;
  11. int i=0;
  12. int c,pos;
  13. stock = fopen("/home/chaica/agenda.fic","rt" );
  14. while ((c = fgetc(stock)) != EOF)
  15. {
  16.  essai[i] = c;
  17.  i = i+1;
  18. }
  19. printf("entre ta recherche\n" );
  20. scanf("%s",&entree);
  21. resultat = strstr(essai,entree);
  22. pos = resultat-essai;
  23. i = 0;
  24. do
  25. {
  26.  car = essai[pos+i];
  27.  printf("%c",car);
  28.  i = i+1;
  29. }
  30. while (car != '\n');
  31. printf("recherche effectuee\nAppuyer sur une touche pour continuer\n" );
  32. fgets(essai,10,stdin);
  33. fclose(stock);
  34. return 0;
  35. }


 
CHaiCA


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)