begin process at 2008 07 05 23:51:49
1 205 404 membres
370 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme de concatenuation [ Système / Autre ] (romainbisson)

Probleme de concatenuation le 09/05/2008 17:31:13

romainbisson

Bonjour,

j'ai ce probleme avec dev c++

invalid conversion from `char' to `const char*'   -- ligne 24  

#include <stdio.h>
#include <string.h>

    int main(int argc, char *argv[]){
       
    char* nf = argv[1];
    FILE *f;
    FILE *out;
    char buffer[100000];
    char c=0, i=0;
    char str[10];
  
    f=fopen(nf,"r");
    out = fopen("out.txt","w");
    if (f != NULL){
        // Boucle de lecture des caractères un à un
        do
        {  
            i++;
            c = fgetc(f); // On lit le caractère
           
            if((i > 62) && (i < 69)){
            fprintf(out,"%c", c); // On l'affiche
            strcat(str,c);
            }
            if(i > 157){
                 i=0;
                 fprintf(out,"\n");
                 }
            }
        while( c != EOF);
        fclose(f);
        fclose(out);
        return 0;
        }
}

je souhaite faire une concatenuation mais sa ne marche pas, et ensuite j'aimerais comparer cette chaine avec une chaine contenant un espace si c'est le cas je n'ecrire pas dans le fichier, En gros, je ne veux pas que le caractere que trouve le fgets soit un espace entre 62 et 69. c'est comprehensible ?

car le fichier ressemble a ça sinon:

035211
034666


054865
208400
088855

et je souhaite qui ressemble a sa


035211
034666
054865
208400
088855


Re : Probleme de concatenuation le 09/05/2008 17:43:23

DeAtHCrAsH
Une solution :
strcat(str, (char *)c);


Shell

Re : Probleme de concatenuation le 09/05/2008 17:43:41

Cyr62110
Pour concatener un caractére à une chaine :
int ibuf = strlen(str);
str[ibuf] = c;
str[ibuf+1] = '\0';
Voila pour ton probleme de concatenation.
Bye

Re : Probleme de concatenuation le 09/05/2008 20:25:16

SAKingdom
Membre Club
deathcrash >> Ben non. strcat demande une adresse. Cependant, là tu passes la valeur d'un caractère.

Normalement, pour écrire 1 caractères à la fois dans un buffer, on maintien un pointeur sur la fin de ce buffer.

Mais là, c'est la lecture caractère par caractère d'un fichier. C'est nulle coté performance
Utiliser fread à la place et lire par bloc. Ensuite, on effectue les traitements sur le buffer.

C++ (@++)



Classé sous : probleme, out, char, if, concatenuation

Participer à cet échange

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS