[VC++] question de noob

question de noob [VC++] - C++ - Programmation

Marsh Posté le 30-10-2002 à 19:53:46    

j'ai fait mon p'tit chemin sur VB , et pi j'ai commencé sous peu le passage au VC++, et pi... ca passe pa bien...
Alors les questions promises :  
Comment on déclare les arrays dynamiques ? l'équivalent d'un
 
"Dim array()
Redim array(x)
Redim Preserve array(x)"
 
en VB
 
Autre question ki tu :
 
comment je fait pour passer une valeur numérique d'un int par exemple a un CString ou un char[x] ?
 
ex : En VB si je fait
Dim a as Integer
Dim b as String
 
a = 65
b = a
 
j'aurai b = "65"
 
en VC++ j'ai:
 
int a;
CString b;
 
a = 65;
b = a; ou b = (CString) a;
 
et pi je fini avec b = "A"
 
Et ca me prend le zg...
 
Alors toutes aide est la bien venue , et pi merci a ceux ki prennent la patience de lire et eventuellement solutionner mes problemes.
 

Reply

Marsh Posté le 30-10-2002 à 19:53:46   

Reply

Marsh Posté le 30-10-2002 à 20:36:04    

oula...
Bon, alors, le langage déja, c'est pas VC++, c'est C++.
On est pas en VB où il y a qu'un seul logiciel pour programmer !
Un tableau dynamique, si t'as sous VC++, t'as qu'a utiliser CArray.
J'crois que pr déclarer une instance de CArray qui contient des objets du type CMonObjet, 'faut écrire :
CArray <CMonObjet, CMonObjet&> monTableau;
(je suis pas sur : à vérifier ds la MSDN)
 
Sinon, pr ton 1e truc, tu peux faire.
int     iMonInt     = 65;
CString srtMaChaine;
 
srtMaChaine = itoa (iMonInt);
 
Tu peux aussi faire  
srtMaChaine.Format ("%d", iMonInt);
 
Regarde la documentation pr comprendre, c important !

Reply

Marsh Posté le 30-10-2002 à 20:56:55    

arf merci . euh la doc j'aurai bien regarder dedans mais j'ai un peu de mal a la downloader........   :D  
 
Euh sinon si j'ai dit VC++ , c packe le tutorial ke j'ai tater pour le C++ precisé ke selon les compileurs y'avait des restriction en plus et des commandes différentes, alors c'etait pour eviter les méprises, enfin peut-etre...
 
bon ben vais essayer tout ca  :)

Reply

Marsh Posté le 31-10-2002 à 02:52:29    

CArray, CString, c'est propore aux MFC, qui est propore à Microsoft.
 
Je recommande les moyens standard.

Code :
  1. #include <string>
  2. #include <iostream> //cout
  3. #include <vector>
  4. using namespace std;
  5. int main(){
  6. string str; //chaîne dynamique
  7. str= "Chaîne "; //copie (texte seulement)
  8. str+= "de "; //concaténation
  9. cout << str << "caractères n° " << 1 << '.' << endl; //sortie console et retour à la ligne
  10. vector<int> vec(20); //tableau dynamique d'int (1 dimension de 20)
  11. vec.resize(40);
  12. vec[0]= 1; //premier élément
  13. vec[39]= 40; //dernier
  14. vec.at(40)= 41; //accès protégé, lance une exception
  15. return 0;
  16. }


Mais bon... te lance pas seul comme ça, tu va être dégouté.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 31-10-2002 à 09:47:15    

merci pour l'alternative , vais tenter aussi .
j'ai enfin eu msdn donc je devrai pouvoir me demerder comme un grand .  
Pour le fait d'etre dégouté , t'inquite po , c deja fait  :D  
 
euh o fait , l'intruction itoa , ca prend 3 parametre , c po bo  :(

Reply

Marsh Posté le 31-10-2002 à 10:39:42    

merci Musaran de porter la bonne parole et montrer à cette bande de jeunes qui bougent ce qu'est le C++
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
le return 0 sert à rien  :p


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 31-10-2002 à 10:40:19    

Taz@PPC a écrit a écrit :

 
le return 0 sert à rien  :p  




ça y est, t'as lancé un débat :sarcastic:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 31-10-2002 à 10:42:39    

non j'ai pas lancé le débat: la norme dit clairement que cette instruction est inutile. surtout qu'il faut pas mettre 0 mais EXIT_SUCCESS  :pt1cable:


Message édité par Taz@PPC le 31-10-2002 à 10:42:52

---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 31-10-2002 à 10:46:41    

moi je m'en fous je mets ni main ni return vu que je fais du Pascal, mais bon je sais qu'y a déjà eu pas mal de discussions avec ces histoires de int/void return/pasreturn etc...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 31-10-2002 à 16:12:45    

moi j'mets void

Reply

Marsh Posté le 31-10-2002 à 16:12:45   

Reply

Marsh Posté le 31-10-2002 à 16:29:02    

ben si tu mets void, c'est plus du C++


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 01-11-2002 à 03:10:37    

Taz@PPC a écrit a écrit :

le return 0 sert à rien


En C++, je sais, mais je trouve ça trop abscons.
J'aurais de très loin préféré la légalisation du "void main".
 

Citation :

surtout qu'il faut pas mettre 0 mais EXIT_SUCCESS

Je t'arrête là: 0 est accepté, et équivalent à EXIT_SUCCESS.
http://www.isty-info.uvsq.fr/~rume [...] 9.html#q_4
http://www.comeaucomputing.com/techtalk/#mainexit
 

Citation :

ben si tu mets void, c'est plus du C++

Ni du C...
 
Par contre, ils ne sont pas d'accord pour savoir si ça c'est valide en C:

Code :
  1. int main(){//...


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 01-11-2002 à 15:17:04    

ca m'est egal que ce soit du c , c++ ou ta grand mere en jordanie du sud ouest , tant ke le code marche....

Reply

Marsh Posté le 01-11-2002 à 19:12:26    

MrX a écrit a écrit :

ca m'est egal que ce soit du c , c++ ou ta grand mere en jordanie du sud ouest , tant ke le code marche....




 
le cas échéant, si tu as un vrai compilateur, ca ne doit pas compiler


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 01-11-2002 à 19:41:38    

Personne n'aurait un bon livre à lui conseiller pour prendre les choses par le "début" ?
 
VB est pratique car on le laisse gérer la mémoire (variables, tableaux, ..) tout seul. En C(++) faut prendre tout en main.
Le choc de deux mondes. :D

Reply

Marsh Posté le 01-11-2002 à 20:29:11    

carbon_14> arf c clair ke ca change , c t bieng le vb ki faisait tout tout seul  :D  
 
taz> ben j'ai prix celui ke le site (du tutorial) conseillé

Reply

Marsh Posté le 01-11-2002 à 21:02:54    

MrX a écrit a écrit :

carbon_14> arf c clair ke ca change , c t bieng le vb ki faisait tout tout seul  :D  
 
taz> ben j'ai prix celui ke le site (du tutorial) conseillé




c'est à dire? VC++?
 
je comprends pas pourquoi on conseille ca à l'enseignement. Payer pour un compilateur meme pas aux normes et aux nombreux bugs  :ange: c'est pas un troll, mais pour apprendre, mieux vau tun compilateur un tant soit peu respectueux de l'ISO comme g++. et si on a de l'argent, mieux vaut se tourner vers Borland


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 02-11-2002 à 10:02:45    

Ben pour un débutant le non-respect de la norme par VC++ n'est vraiment pas un probleme. La plupart conventions que VC++ ne respecte pas et qui peuvent gêner ne peuvent etre rencontrés que par une personne qui sait programmer depuis longtemps ( la plupart concernent les templates ).
 
Et n'allez pas me dire qu'il faudra des mois d'adaptation pour un débutant qui réalise qu'il doit passer du "void main" a "int main".

Reply

Marsh Posté le 02-11-2002 à 17:04:26    

euh vc++ je l'ai pris packe ca me paraicait un peu emmerdant de de m'occuper de l'aspect graphique de mes eventuelles programme uniquement a travers le code (je pense ke vous voyer ce ke je ve dire) . Le compileur de mon tutorial c bloodshed c++ (pourquoi j'ai l'impression d'avoir rallumé un feu k'il fallait pa...)

Reply

Marsh Posté le 04-11-2002 à 23:56:30    

Ma collection personnelle de bogues VC++6 sp 5:

Code :
  1. int main(){
  2. //erreurs
  3. volatile int i ;
  4. cin >> i ;//pas d'operateur >> pour volatile
  5. float f= 2147483647.f;
  6. int i= f; //-2147483648
  7. cout << typeid(1==1).name() << endl ;//long, alors que c'est int en C et bool en C++.
  8. cout<<typeid(  "Abc"   ).name()<<endl;//char [4]
  9. cout<<typeid( &"Abc"   ).name()<<endl;//char [4] adresse est tableau ?
  10. cout<<typeid( &"Abc"[0]).name()<<endl;//char *
  11. cout<<typeid(*&"Abc"   ).name()<<endl;//char     caractère, pas tableau ?
  12. char ctab[4];
  13. cout<<typeid(  ctab    ).name()<<endl;//char *   tableau est pointeur ?
  14. cout<<typeid( &ctab    ).name()<<endl;//char (*)[4]
  15. cout<<typeid( &ctab [0]).name()<<endl;//char *
  16. cout<<typeid(*&ctab    ).name()<<endl;//char *   pointeur, pas tableau ?
  17. //Devraient être des erreurs
  18. int or; //mot-clé réservé ?, voir #include <iso646.h>
  19. //Étrangetés
  20. int i={1} ;//est-ce normal ?
  21. interface ; //considéré/affiché comme un mot-clé (classe ?), alors que ça ne l'est pas.
  22. array_handler; //mot-clef ?
  23. //Devraient etre valides
  24. int a1[4] = {}; //tout initialisé à 0 par défaut
  25. }


Quand je vois à quel point les templates sont indispensables à la programmation réutilisable, à la structuration, je ne comprends pas comment on peut mener correctement un projet d'envergure avec la mauvaise gestion qu'en fait VC++6.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 05-11-2002 à 10:50:12    

ben ca va t'a un zolie famille =). VC++ c si mauvais ke ca ? y a quoi de bien qui coll pa une erreur sur chque ligne de code pour assurer son quotat journalier

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed