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 :

char [] et taille


Sujet :

C

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 45
    Par défaut char [] et taille
    Bonjour,
    une petite question toute bête, j'ai des trous de mémoires, dans une fonction de profil:
    void SaisieTexte( char bufNom [] ,char bufDefaut [] );

    si je veux récupérer la taille de mes deux buffers, comment je peux faire? Les fonctions .size() et .length() ne fonctionnent pas :/ Deja le profil me parait pas bon...

    Merci!

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    si je veux récupérer la taille de mes deux buffers, comment je peux faire?
    La seule chose à faire, c'est de passer la taille des buffers en paramètres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Les fonctions .size() et .length() ne fonctionnent pas
    Ces méthodes appartiennent à la class string, mais c'est en c++.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 45
    Par défaut
    Oui mais le problème c'est que je les déclare à 256, puis je les remplis selon la saisie de l'utilisateur, et j'ai besoin de savoir la taille de ce que saisie l'utilisateur :/ je te montre des bouts de 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
     
     
    char bufNom		[256];	// Un buffer pour stocker le nom de la variable globale à ajouter
    char bufDefaut	[256];	// Un buffer pour stocker la valeur par défaut de la variable
     
               // recupere le texte des edits
    	SendMessage(edit1, WM_GETTEXT, 256, (LPARAM)bufNom);
    	SendMessage(edit2, WM_GETTEXT, 256, (LPARAM)bufDefaut);
     
    	//On réinitialise les champs à zero pour la propretée
    	SendMessage(edit1, WM_SETTEXT, 256, (LPARAM)"");
    	SendMessage(edit2, WM_SETTEXT, 256, (LPARAM)"");
     
    	//On récupère l'indice de l'élèment choisi dans la CB
    	element = SendMessage(hwndList, CB_GETCURSEL, 0,0);
    	//test pour le type
    	if (element == -1){
    		MessageBox(Dlg,TEXT("Aucun type sélectionné"), TEXT("Erreur"), MB_OK);
    		break;}
     
     
     
    	// ajoute item au combobox
    	LRESULT val;
    	val = SendMessage(hwndList, CB_GETITEMDATA,element, 0); 
    	SendMessage(hwndList, CB_ADDSTRING, 0,(LPARAM)bufNom); 
    	SendMessage(hwndList, CB_ADDSTRING, 0,(LPARAM)bufDefaut); 
    	SaisieTexte(bufNom, bufDefaut);
    Et là, la fonction SaisieTexte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void SaisieTexte( char bufNom [] ,char bufDefaut []	)
    {
               SendMessage(nppData._scintillaMainHandle, SCI_ADDTEXT, 9, (LPARAM)"Declare (");
    	SendMessage(nppData._scintillaMainHandle, SCI_ADDTEXT, 3, (LPARAM)bufNom);
    	SendMessage(nppData._scintillaMainHandle, SCI_ADDTEXT, NULL, (LPARAM)"\r");
    //j'ai pas tout mis :D, c'est tjs la meme chose!
    }
    Je me retrouve avec des caractère null lors de l'insertion du texte de mes buffer

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Bonjour,

    En fait dans ce cas, comme tu initialises correctement tes buffers, tu peux utiliser la fonction strlen, qui te retourne le nombre de caractère d'une chaine avant le premier caractère "nul"...

  5. #5
    Membre confirmé Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Par défaut
    Citation Envoyé par mabu Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    si je veux récupérer la taille de mes deux buffers, comment je peux faire?
    La seule chose à faire, c'est de passer la taille des buffers en paramètres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Les fonctions .size() et .length() ne fonctionnent pas
    Ces méthodes appartiennent à la class string, mais c'est en c++.
    Je dirais meme en C++ voire en Java

    La solution a ton probleme reste de faire un memset(tab, 0, sizeof(tab)); apres sa declaration puis de l'utiliser. Pour connaitre la taille de l'input de l'user (que tu auras pris soin de faire avec un fgets(stdin, tab, sizeof(tab))), il ne reste plus qu'a faire un strlen(tab).

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 24/06/2014, 16h57
  2. caster un int en char sur taille fixe
    Par devdebutantajax dans le forum Windows
    Réponses: 14
    Dernier message: 01/11/2008, 14h24
  3. Taille d'un char
    Par ferry.jules dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/07/2006, 16h34
  4. [C#] WinForm.Label : connaitre la taille d'une liste de char
    Par lord_paco dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/11/2004, 23h04
  5. Diff. de taille physique entre CHAR(1) et VARCHAR2(1)
    Par foster06 dans le forum Oracle
    Réponses: 6
    Dernier message: 20/10/2004, 11h20

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