Demande d'un ptit truc simple (visual c++, win32 sans mfc) [Résolu]

Signaler
Messages postés
41
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
30 janvier 2013
-
Messages postés
41
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
30 janvier 2013
-
Comment je fait pour "coller" deux variables pour obtenir un truc du style



a = "fichier"



b = "5"



a + b = "fichier 5"



quelle est la fonction pour ça?



merci

tien la tien la bien

16 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
incrémente les valeurs:
#define IDC_DON0 1001
#define IDC_DON1 1002
etc...

Commence par assimiler Petzold, on reprendra ensuite:
http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/CP5Sources.zip

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
1
char a[] = "féchier"

char b[] = "5"

char total[32] = '\0';



strcat(total, a);

strcat(total, b);



et total = "fichier5";
Messages postés
126
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
11 juillet 2006

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
strcat (a,b); PLANTAGE PAR ECRASEMENT !!!

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
41
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
30 janvier 2013

case IDC_DECOUP:

{


for (int
d=0;d==5;d+=1)

{



char e[]="IDC_DON";



char res[]="/0";



strcat(res,e);



SetDlgItemText(hDlg,res,"ok");



return 0;

}

break;

}

voila mon code.... mais impossible de l'afficher... comment je peux convertir char en int?

tien la tien la bien
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
1
ATTENTION !!!!

(je t'ai pas effrayé j'espère)



char res[]="/0";

strcat(res,e);



Bug à coup sûr !

res alloue 2 octets seulement.

Fais char res[32] = '\0'; pour avoir 32 octets initialisés à 0



char en int: atoi() [ASCII to Int]
Messages postés
41
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
30 janvier 2013

case IDC_DEC:

{

int d=0;


while (d<=5)

{



char d2[32]="/0";



char e[]="IDC_DON";



char res[32]="/0";



int res2;



_itoa(d,d2,5);



strcat(res,e);



strcat(res,d2);



res2 = atoi(res);



SetDlgItemText(hDlg,res2,"ok");



d= d+1;

}

break;

}

voila le code modifié.... pourquoi res2 reste à 0 au lieu de me mettre IDC_DON0... IDC_DON1 etc... ?

tien la tien la bien
Messages postés
41
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
30 janvier 2013

quote

ATTENTION !!!!

(je t'ai pas effrayé j'espère)

/quote


nan t'inkiète... j'ai l'habitude... c'est pas simple ce style de prog.
tien la tien la bien
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
C'est quoi ce souk, tout est réinitialisé à chaque tour de boucle.
Faudrait peut-être faire une pause et te replonger dans un bouquin de C.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
41
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
30 janvier 2013




C'est quoi ce souk, tout est réinitialisé à chaque tour de boucle.

Faudrait peut-être faire une pause et te replonger dans un bouquin de C.



ciao...




vi autant pour moi .... c'est ce que je vais faire... désolé.

tien la tien la bien
Messages postés
41
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
30 janvier 2013

Réecris ça donne ça...

mais quand j'execute il met run time error 2# : stack around the variable res vas corrupted.....

quelqu'un peut m'aider?



case IDC_DEC:

{

int d=0;


char
d2[32]="/0";


char
e[]="IDC_DON";


char
res[32]="/0";

int res2;


while (d<=5)

{



_itoa(d,d2,5);



strcat(res,e);



strcat(res,d2);



res2 = atoi(res);



SetDlgItemText(hDlg,res2,"ok");



d= d+1;

}

break;

}




tien la tien la bien
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Cesse donc de nous mettre ces lignes qui n'ont aucun sens:
strcat, strcat... par force ça éclate.
Quel est le but, voilà ce qu'il conviendrait de savoir.

Je vais supposer qu'il faut écrire "OK" dans 6 controles indexés par ordre croissant partant de IDC_DON:
case IDC_DEC:
{
int d = 0;
while(d <= 5) {
SetDlgItemText(hDlg, d + IDC_DON, "OK");
d++;
}
break;
}

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
41
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
30 janvier 2013

au début c'est ce que j'ai fait au debut...
vi mais IDC_DON ----> identificateur non déclaré.... et c'est la le problème
tien la tien la bien
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
#include "resource.h" peut-être

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
41
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
30 janvier 2013

vi mais en fait je suis un boulet de première.....



je ne sais pas indexer les controles comme en VB (dans le genre
IDC_DON(0), IDC_DON(1)....IDC_DON(x)) comment fait -on? désoler
d'abuser de votre compétence mais j'apprend et la vraiment je sèche.
tien la tien la bien
Messages postés
41
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
30 janvier 2013

merci



en fait c 'est le bouquin que j'ai commendé sur amazon...



l'es très rare et je le cherchais depuis un bout de temps... de plus
j'ai resorti mon autre bouquin de programation c++ de base.



en tout cas merci de votre compréhension.

tien la tien la bien