Carte Identitée
Fermé
momoadmo
Messages postés
6
Date d'inscription
jeudi 1 juin 2017
Statut
Membre
Dernière intervention
2 juin 2017
-
2 juin 2017 à 23:33
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 6 juin 2017 à 17:20
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 6 juin 2017 à 17:20
A voir également:
- Carte Identitée
- Carte d'identité - Accueil - Services publics
- Pile carte mere - Guide
- Blocage agriculteur carte en temps réel - Accueil - Transports & Cartes
- Changer carte graphique - Guide
- Débloquer carte sim sans code puk - Guide
2 réponses
YCN-
Messages postés
116
Date d'inscription
mercredi 24 juin 2015
Statut
Membre
Dernière intervention
13 juillet 2017
12
6 juin 2017 à 09:58
6 juin 2017 à 09:58
Salut,
Moi quand je dois faire ce genre d'interface "textuelles" en fait je les mets dans des fichiers textes, et je mets des balises, par exemple %NOM% ou %PRENOM% la ou je dois compléter, et ensuite je remplace lorsque je dois afficher le %balise% par la valeur voulue, ça t'évite d'avoir tout ça en dure dans ton code, ça rend le truc un peu plus propre.
Après bon ça complique un peu puisque tu vas devoir lire et écrire dans des fichiers, mais bon ça peut être pas mal à savoir faire cependant.
Moi quand je dois faire ce genre d'interface "textuelles" en fait je les mets dans des fichiers textes, et je mets des balises, par exemple %NOM% ou %PRENOM% la ou je dois compléter, et ensuite je remplace lorsque je dois afficher le %balise% par la valeur voulue, ça t'évite d'avoir tout ça en dure dans ton code, ça rend le truc un peu plus propre.
Après bon ça complique un peu puisque tu vas devoir lire et écrire dans des fichiers, mais bon ça peut être pas mal à savoir faire cependant.
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
6 juin 2017 à 10:39
6 juin 2017 à 10:39
Salut momoadmo,
En C, tu ne peux pas déclarer une fonction à l'intérieur d'une autre.
Tu dois donc sortir le code de la fonction de saisie, en dehors de main.
Pour que ton code soit plus lisible, tu peux créer plusieurs fonctions faisant des choses différentes, et appeler ces fonctions depuis main. Sur la lisibilité, tu devrais aussi indenter ton code correctement.
Tu devrais définir ton type structure en dehors de main, ainsi, le type sera accessible aux fonctions, et déclarer ta variable structure dans main, en la passant aux fonctions qui en ont besoin en paramètre, en passant un pointeur sur cette variable quand tu la passes à une fonction qui doit la modifier.
Attention à scanf avec %s, qui s'arrête au premier espace ou tabulation. Essaye de taper cette adresse "1, rue de Deux, 10000 Troyes, France", tu verras que scanf ne va prendre que "1,". Pour une saisie de texte pouvant comporter des espaces il faut utiliser un spécificateur de taille, ou fgets.
Pour te donner une idée, cela donnerait, sur un exemple simplifié :
Dal
En C, tu ne peux pas déclarer une fonction à l'intérieur d'une autre.
Tu dois donc sortir le code de la fonction de saisie, en dehors de main.
Pour que ton code soit plus lisible, tu peux créer plusieurs fonctions faisant des choses différentes, et appeler ces fonctions depuis main. Sur la lisibilité, tu devrais aussi indenter ton code correctement.
Tu devrais définir ton type structure en dehors de main, ainsi, le type sera accessible aux fonctions, et déclarer ta variable structure dans main, en la passant aux fonctions qui en ont besoin en paramètre, en passant un pointeur sur cette variable quand tu la passes à une fonction qui doit la modifier.
Attention à scanf avec %s, qui s'arrête au premier espace ou tabulation. Essaye de taper cette adresse "1, rue de Deux, 10000 Troyes, France", tu verras que scanf ne va prendre que "1,". Pour une saisie de texte pouvant comporter des espaces il faut utiliser un spécificateur de taille, ou fgets.
Pour te donner une idée, cela donnerait, sur un exemple simplifié :
#include <stdio.h> #include <time.h> #include <stdlib.h> typedef struct personne personne; struct personne { int num; char adresse[256]; }; void saisie(personne * p) { printf("=========== Début saisie ===========\n"); printf("Adresse (max 255 caractères) : "); scanf("%255[^\n]", p->adresse); p->num=rand()%(99999999-10000000) +10000000; printf("=========== Fin saisie ===========\n"); } void affichage(personne p) { printf("=========== Début affichage ===========\n"); printf("Numero: %d\n", p.num); printf("Adresse: %s\n",p.adresse); printf("=========== Fin affichage ===========\n"); } int main(void){ personne p; srand(time(NULL)); saisie(&p); affichage(p); /* faire le reste : écriture, etc. */ return 0; }
Dal
6 juin 2017 à 15:58
6 juin 2017 à 16:32
Modifié le 6 juin 2017 à 17:26
et on a une présentation plus aérée, tout en laissant printf gérer nos "balises" :-)
les lignes successives entre guillemets seront concaténées toutes seules en une par le préprocesseur avant la compilation.