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

  FORUM HardWare.fr
  Programmation
  C++

  probleme de texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme de texte

n°388848
warmasterc​s
Posté le 10-05-2003 à 00:07:35  profilanswer
 

Suite et fin des aventures graces a l'aide de certaines personnes que je remercie beaucoup je suis arrivé non sans mal a un prog
pas trop mal. Le resultat est mitigé puisque il m'ecrit bien ce que je veux mais aussi des caracteres bizarres qui n'on rien a faire la  
le resultat est le suivant :  
 
nom,x? popo,? prenom, hophop, w, variable.html, , a+, %s ,l>, , U?å?ìº@@,ml, èJ,ml>  
 
Apres avoir cherché sur fopen le mode binaire et texte etc...
et fprintf different format ca na rien donné  
voici le prog :
 

Code :
  1. #include <stdio.h>
  2.    #include <stdlib.h>
  3.    #include <string.h>
  4.    
  5.    
  6.    
  7.    
  8.     char *str = "truc.cgi?nom=popo&prenom=hophop"; 
  9.     FILE * fichier;
  10.     int j=1;
  11.     char *valeurs;
  12.     char *variables;
  13.    
  14.     int main ()   
  15.     {
  16.     /* ouverture du fichier html */ 
  17.     fichier = fopen("variable.html", "w+" );
  18.    
  19.     /* Ecriture des données dans le fichier */ 
  20.     fprintf(fichier, "<html>" );
  21.    
  22.    
  23.    
  24.     /*on pointe sur '?' et on avance d'un cran*/ 
  25.          str = strchr( str, '?' );
  26.          str++;   
  27.        
  28.     /*c parti on boucle*/ 
  29.          while (*str) 
  30.             { 
  31.                    char *tmp = str; 
  32.                    int size; 
  33.                    char *token; 
  34.                    
  35.              /* ca boucle jusqu'a temps de tomber sur le caractere '=' ou '&' ou la fin de   
  36.               chaine*/
  37.                    while (*tmp && (*tmp != '=') && (*tmp != '&')) 
  38.                    tmp++; 
  39.                    
  40.                    size = (int)(tmp - str);
  41.                    token = (char*)malloc((size + 1) * sizeof (char));
  42.                    memcpy(token, str, size);
  43.                    token[size] = '\0';
  44.                    
  45.                
  46.                 if ( j%2 )  { 
  47.                        
  48.                        variables=malloc(strlen(token)+1);
  49.                        strcpy(variables, token) ;
  50.                        variables[size] = ',';
  51.                        fichier = fopen("variable.html", "a+" );
  52.                        fprintf(fichier, "%s\n", variables);
  53.                        fclose(fichier);
  54.                        free (variables);
  55.                    }
  56.                
  57.                 else
  58.                        valeurs=malloc(strlen(token)+1);
  59.                        strcpy(valeurs, token) ;
  60.                        valeurs[size] = ',';
  61.                        fichier = fopen("variable.html", "a+" );
  62.                        fprintf(fichier, "%s\n", valeurs);
  63.                        fclose(fichier);
  64.                        free (valeurs);
  65.                      }
  66.                 j++;
  67.                 str += size + 1;
  68.                 free (token);
  69.             }
  70.        
  71.          
  72.     fichier = fopen("variable.html", "a+" );
  73.     fprintf(fichier, "</html>" );
  74.     fclose(fichier);
  75.        
  76.        
  77.     }


Message édité par warmastercs le 10-05-2003 à 00:55:53

---------------
un sabre est une arme. le kenjutsu, une technique de mort. Peu importent les bonnes intentions, c'est la seul vérité. On tue pour protéger. On tue pour que d'autres vivent. C'est ca, la vérité du sabre.
mood
Publicité
Posté le 10-05-2003 à 00:07:35  profilanswer
 

n°388909
Babouchka
You're no fun anymore
Posté le 10-05-2003 à 01:16:53  profilanswer
 

Code :
  1. #include <stdio.h>
  2.      #include <stdlib.h>
  3.      #include <string.h>
  4.      
  5.      
  6.      
  7.      
  8.       char *str = "truc.cgi?nom=popo&prenom=hophop\0";
  9.       FILE * fichier;
  10.       int j=1;
  11.       char *valeurs;
  12.       char *variables;
  13.      
  14.       int main ()   
  15.       {
  16.         /* ouverture du fichier html */ 
  17.         fichier = fopen("variable.txt", "w+" );
  18.        
  19.         /* Ecriture des données dans le fichier */ 
  20.         fprintf(fichier, "<html>" );
  21.        
  22.        
  23.        
  24.         /*on pointe sur '?' et on avance d'un cran*/   
  25.              str = strchr( str, '?' );
  26.              str++;     
  27.             char *tmp;
  28.             int size;
  29.             char *token;
  30.         /*c parti on boucle*/   
  31.              while (*str) 
  32.                 { 
  33.                          tmp = str; 
  34.                        
  35.                          
  36.                    /* ca boucle jusqu'a temps de tomber sur le caractere '=' ou '&' ou la fin de   
  37.                     chaine*/
  38.                          while (*tmp && (*tmp != '=') && (*tmp != '&')) 
  39.                          tmp++; 
  40.                          
  41.                          size = (int)(tmp - str);
  42.                          size++;
  43.                          token = malloc((size + 1) * sizeof (char));
  44.                          memcpy(token, str, size);
  45.                          token[size] = '\0';
  46.                          
  47.                      
  48.                       if ( j%2 )  { 
  49.                                
  50.                                variables=malloc(strlen(token)+2);
  51.                                strcpy(variables, token) ;
  52.                                variables[size-1] = ',';
  53.                                variables[size] = '\0';
  54.                                fichier = fopen("variable.html", "a+" );
  55.                                fprintf(fichier, "%s\n", variables);
  56.                                fclose(fichier);
  57.                                free (variables);
  58.                          }
  59.                      
  60.                       else
  61.                                valeurs=malloc(strlen(token)+2);
  62.                                strcpy(valeurs, token) ;
  63.                                valeurs[size-1] = ',';
  64.                                valeurs[size] = '\0';
  65.                                fichier = fopen("variable.html", "a+" );
  66.                                fprintf(fichier, "%s\n", valeurs);
  67.                                fclose(fichier);
  68.                                free (valeurs);
  69.                            }
  70.                       j++;
  71.                       str += size;
  72.                       free (token);
  73.                 }
  74.            
  75.              
  76.         fichier = fopen("variable.html", "a+" );
  77.         fprintf(fichier, "</html>" );
  78.         fclose(fichier);
  79.            
  80.       }

 
 
ça doit être un truc comme ça que tu veux non ?
 
j'ai enlevé 2, 3 horreurs (en fait surtout les variables déclarées x fois dans la boucle :/ )
 
et tjrs penser à fermer ses chaines de caractères
 
ya moyen de faire + propre je pense, mais bon faudrait tt reprendre [:ddr555]
 
A+


Message édité par Babouchka le 10-05-2003 à 01:20:08
n°388913
warmasterc​s
Posté le 10-05-2003 à 01:24:23  profilanswer
 

merci . j voudrais savoir ca existe un debugger pour le languace C qui permet de voir pas a pas ce qui ce passe pour trouvé les erreur plus facilement ? du style quand il arrive sur la creation d un fichier . il t ouvre une fenetre avec ce fichier et tu vois pas a pas ce qu'il ecrit dedans suivant ton program par exemple ?


---------------
un sabre est une arme. le kenjutsu, une technique de mort. Peu importent les bonnes intentions, c'est la seul vérité. On tue pour protéger. On tue pour que d'autres vivent. C'est ca, la vérité du sabre.
n°388914
Babouchka
You're no fun anymore
Posté le 10-05-2003 à 01:28:59  profilanswer
 

WarmasterCS a écrit :

merci . j voudrais savoir ca existe un debugger pour le languace C qui permet de voir pas a pas ce qui ce passe pour trouvé les erreur plus facilement ? du style quand il arrive sur la creation d un fichier . il t ouvre une fenetre avec ce fichier et tu vois pas a pas ce qu'il ecrit dedans suivant ton program par exemple ?


 
ben soit tu fais des affichages dans la console de chaque truc que tu mets dans ton fichier
 
soit tu tentes le debugger de devc++/visual studio (mais pour un prog aussi petit que le tiens, je pense que c'est pas très utile, vaut mieux debugger avec des affichages)
 
A+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  probleme de texte

 

Sujets relatifs
[FLASH \ PHP]problème avec un champ de texte.[JAVA] Probleme lecture fichier texte
problème de texte multilignePetit probleme très étrange : Couleur de texte (titre sous phpmynews)
[XSL] Problème d'interpretation du XML sur une zone de texteJ'ai un problème avec la passage de texte dans un formulaire.
[PHP] Problème d'insertion automatique de texte dans un champ...Problème de Position, de Couleurs et de Texte...
Problème de Position , de Couleurs et de Texte...probleme php-mysql retour a la ligne , tableau et saisi de texte
Plus de sujets relatifs à : probleme de texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR