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.