IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Problème avec strcat


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Par défaut Problème avec strcat
    Bonjour,

    Mon code est sensé créer une chaine de caractère a partir d'une ligne saisie par l'utilisateur. Chaque mot de cette ligne ne doit pas dépasser une certaine longueur. Donc je les ajoute après contrôle de la longueur à à ce qui sera la chiane finalisée qui est destinée à ête écrite dans un fichiers texte. Voici ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define LNOM 21
    #define LPRENOM 16
    #define LPHONE 11
    #define LAGE 3
     
    int main(int argc, char const *argv[])
    {
    	char age[LAGE];
    	char name[LNOM];
    	char prenom[LPRENOM];
    	char phone[LPHONE];
    	char entree[100] = "";
    	FILE * contact;
     
     
    	contact = fopen("contact.txt", "w");
     
    	if (contact == NULL) {
    		printf("Erreur d'ouverture du fichier contacts.txt.\n");
    		exit(1);	
    	}
     
     
    	printf("Saisissez un contact (nom prénom téléphone age)\n");
    	scanf("%s %s %s %s", name, prenom, phone, age );
     
    	printf("Nom : %s\n", name);
    	printf("Prénom : %s\n", prenom);
    	printf("Téléphone : %s\n", phone);
    	printf("Age : %s\n", age);
     
    	if (strlen(name) <= LNOM ) {
    		strcat(name, entree);
    		printf("1\n");
    	}
     
    	if (strlen(prenom) <= LPRENOM ) {
    		strcat(prenom, entree);
    		printf("2\n");
    	}
     
    	if (strlen(phone) <= LPHONE ) {
    		strcat(phone, entree);
    		printf("3\n");
    	}
     
    	if (strlen(age) <= LAGE ) {
    		strcat(age, entree);
    		printf("4\n");
    	}
     
    	printf("Chaine : %s\n", entree);
     
    	fwrite(entree, strlen(entree), sizeof(char), contact);
    	fclose(contact);
     
     
    	return 0;
    }
    L'ensemble des "printf" est là pour montrer ce que contient la chaine donnée en paramétrage et a montrer que l'on est bien entré dans les "if".

    Tout semble OK, mais je n'obtient pourtant rien dans l'affichage de la chaine par le dernier "printf". Voici la commande de compilation et une exécution du programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    { c }  » gcc contact.c -o contact.exe -g -Wall -pedantic                                                      /cygdrive/e/bin/scripts/c
    { c }  » ./contact.exe                                                                                        /cygdrive/e/bin/scripts/c
    Saisissez un contact (nom prénom téléphone age)
    test test test 10
    Nom : test
    Prénom : test
    Téléphone : test
    Age : 10
    1
    2
    3
    4
    Chaine :
    { c }  »
    Quelq'un aurait une idée sur le pourquoi de la chose ?
    Merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Lis la documentation

    char * strcat ( char * destination, const char * source );
    Il fallait s'y attendre

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Par défaut
    Ah oui, elle est belle, la bévue :-)

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec strtok_r et strcat
    Par laracroft87 dans le forum Débuter
    Réponses: 14
    Dernier message: 12/01/2009, 15h32
  2. Problème avec strcat
    Par choupinette116 dans le forum Débuter
    Réponses: 5
    Dernier message: 21/04/2008, 17h42
  3. Problème avec la fonction strcat
    Par saddamtohmto dans le forum MATLAB
    Réponses: 10
    Dernier message: 18/07/2007, 07h57
  4. Problème avec la fonction Strcat
    Par totoc1001 dans le forum MATLAB
    Réponses: 6
    Dernier message: 29/01/2007, 21h34
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo