CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

JeanYvesYves
JeanYvesYves
Niveau 10
03 février 2005 à 18:39:30

ah bien ! !!! :) j´irai les tester !
car ça m´emmerde toujours d´installer quicktime et realplay :)

koyok > pour le * c´est simple :

il faut se dire que le pointeur contient une adresse, donc un nombre long on va dire.
Si tu affiches la valeur du pointeur, tu affiches l´adresse, donc un nombre long ( et cout le met en hexa car il sait que c´est un pointeur)
si tu affiches *p, alors tu affiche CE QUE REGARDE le pointeur, autrement dit ce qu´il y a à l´adresse indiquée...

regarde mon tuto 1.18 pour + de détails

jejej > faut utiliser des debugger

dnob700
dnob700
Niveau 10
03 février 2005 à 18:46:59

koko-K il faut que tu utilise 2 cin.get() d´affilé, c´est pour d´obscure raison de flux et de vidage de lamémoire tampon, mais le premier lis direct un caractère de fin de ligne qui ets encore dans le flux.

donc tu fait :
int main()
{
char t[]={0,1};
short* s=(short*)t;
cout < < sizeof(s);
cin.get();cin.get();
return 0;
}

jejej, oui avec n´importe quel debugger il suffit de chercher le test qui va suivre l´instruction cin et de voir avec qui ta variable est comparée

sur newbie contest, tu parle de quel prog exactement ?

dnob700
dnob700
Niveau 10
03 février 2005 à 18:52:44

oui, mais de toute façon le nebie contest, tout les programme sont écrit en VB, on ne peut pas comparer.

quand tu regarde l´assembleur d´un programme écrit en C ( pour regarder, pas pour faire quoi que ce soit d´illégale, juste pour comprendre comment il marche) c´est superbe tu vois la simplicité s´étaler devant toi dans sa forme la plus pure ( si le compilo est pas trop mauvais) alors qu´un truc en VB est une infame bouilli d´appel à la DLL vb qui fourni les fonction necessaire ( d´ailleur ça mets fin au débat pour savoir si le vb est interprété ou exécuté puisqu´il est réellement exécuté avec l´aide d´un grand nombre d´appel à une bibliothèque externe mais c´est pas pire que que la mscrt.dll).

cobradu94
cobradu94
Niveau 6
03 février 2005 à 19:00:52

merci . .. mais sa marche pas, si je remet a 0 le caractere_calcule le prog me decalera pas la lettre de 26 cran cette fois si mais de 0 puis de 1 et ensuite 2 etc...
Mais il depassera quand meme les caracteres alaphabetiques ( les lettres)

cobradu94
cobradu94
Niveau 6
03 février 2005 à 19:02:25

et j´ai vu que tu a ecris
if ( caractere_calcule>´z´)
´z´ est un nombre ?
Si oui je comprend qu´on peut assigner un signe de superiorité.
Si non je comprend pas pourquoi ( ce qui est le cas maitnenant)

LGV
LGV
Niveau 28
03 février 2005 à 20:41:52

oui, c´est la valeur ASCII du caractère ´z´, qui vaut 122 ( http://www.lookuptables.com/ )

tu peux donc faire des choses comme char c = ´a´; ++c; et pouf c vaut ´b´...

cobradu94
cobradu94
Niveau 6
03 février 2005 à 20:55:03

mais si c juste le decaler d´une lettre c´est trop simpliste

LGV
LGV
Niveau 28
03 février 2005 à 21:02:40

je ne te parle pas de l´application en tant que cryptage, mais je présentais simplement cela come une illustration du fait qu´un char est une valeur numérique.

cobradu94
cobradu94
Niveau 6
03 février 2005 à 21:09:31

a oki, merci :) Mais tu sais pas comment on peux faire une table personnelle ou on regle la valeur de chacune des lettre, et on choisi c´est carracter ( pour ma part que des lettre) ? ?

LGV
LGV
Niveau 28
03 février 2005 à 22:05:10

si, tu fais un mapping bidon : un tableau, tu files une valeur, il t´en files une autre en retour ; pouf c´est fini. Du style :

char
maTableAsciiDansLeDesordreParcequeCaMePlaitEtCEstM
onChoix[] = { ´4´, ´k´, ´^´, . .. };

( attention que sur les 256 carac. de la tables, les 32 premiers ne sont pas imprimables...)

Mais en l´occurence ce sera ton tableau l´élement sécuritaire de ton cryptage, et ton tableau il apparaitra " plus ou moins" dans le binaire ( en fouillant un peu...) : il faudra donc aussi ( et surtout) sécuriser ton tableau ( en ne le stockant pas sous sa forme brute ; si tu peux par ex. le regenerer à chaque fois, selon un procede complexe, c´est déjà un peu mieux)

JeanYvesYves
JeanYvesYves
Niveau 10
04 février 2005 à 09:20:40

cobradu94 > la table qui associe des caracteres aux numéros est la table ASCII :)
et dans ASCII, il y a " S" qui veut dire standard :)
comme tu ´las compris ´z´ retourne le code ASCII de la lettre z :)

XyTiX
XyTiX
Niveau 8
04 février 2005 à 23:49:50

le :up: du jour

jejej
jejej
Niveau 9
05 février 2005 à 21:14:41

klr il est loin le topic la

Bon , moi j´aurais un petit problème avec des classes ( heritage + polymorphisme :p) )
je poste le code :
http://rafb.net/paste/results/BGN7Fi49.html

bon , les fonctions ( afficher ) ne font qu´ecrire a l´ecran , je n´utilise pas ecore sdl , ce n´est que du c++ pur

Mais j´ai quand meme ces erreurs à la compilation :

C:/Dev-Cpp/ClassesVirtuelles.cpp:47: error: prototype for `FondEcran::FondEcran(int, int, char*)´ does not match any in class `FondEcran´
C:/Dev-Cpp/ClassesVirtuelles.cpp:37: error: candidates are: FondEcran::FondEcran(const FondEcran&)
C:/Dev-Cpp/ClassesVirtuelles.cpp:41: error: FondEcran::FondEcran(int, int, int*)

C:/Dev-Cpp/ClassesVirtuelles.cpp: In member function `virtual void FondEcran::AfficherImage()´:
C:/Dev-Cpp/ClassesVirtuelles.cpp:54: error: syntax error before string constant

C:/Dev-Cpp/ClassesVirtuelles.cpp: In function `int main()´:
C:/Dev-Cpp/ClassesVirtuelles.cpp:71: error: no matching function for call to `FondEcran::FondEcran(int, int, const char[11])´
C:/Dev-Cpp/ClassesVirtuelles.cpp:37: error: candidates are: FondEcran::FondEcran(const FondEcran&)

C:/Dev-Cpp/ClassesVirtuelles.cpp:41: error: FondEcran::FondEcran(int, int, int*)

Exécution terminée

voila , si quelqu´un acceptait de corriger quelques unes de ces erreurs . .. parceque , je suis le né dans mon bouquin de c++ , et j´ai bien l´impression que je fait a peu pres la meme chose que lui ( bon , c´est pas le cas parceque ca compile pas , ou alors il est nul . .. )

merci beaucoup :)

jejej
jejej
Niveau 9
05 février 2005 à 21:17:51

OMgggggg
bon oubliez tout , oubliez le code , oubliez moi ^^

je reparcours une derniere fois mon code en desespoir de cause , et je me rends compte que j´ai ecris int *NI pour ma chaine de caractere :honte:

vraiment désolé , mea culpa , etc etc
bon j´ai encore une erreur , j´ai un syntax error before string constant lors de
AfficherImage::FondEcran

mais je vois pas d´ou elle vient . ..

jejej
jejej
Niveau 9
05 février 2005 à 22:24:29

Bon , je laisse tomber ces bidules , et je passe a du serieux : un puissance 4 :)

En fait , ca serait pour chambrer un pote qui m´a humilie en cours ( 5/2 :snif: )
donc je voudrais realiser un petit jeu de puissance 4 avec une chtite AI qui le battrait a tous les coups :)

Bon , pour l´instant j´en suis pas encore la , puisque je me pose la question de l´initialisation du plateau de jeu

ca serait un carre de 7*7 , donc je declare un tableau ( int Plateau[7][7]; ) mais comment initialiser toutes les cases a zero ?
parceque , si je fait ( for i=0 i<7 , i++ )
{ Plateau[i][i) =0 , ca va initialiser que la diagonale du plateau de jeu . .. ) bizarre :)

Ptival
Ptival
Niveau 10
05 février 2005 à 23:21:45

jejej ->

for(int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
{
Tableau[i][j]=0;
}
}

Mais pour un tableau que tu es en train d´initialiser ya pitêtre encore plus simple ?

jejej
jejej
Niveau 9
05 février 2005 à 23:31:49

la je suis tout rouge et j´essaie de disparaitre sous mon bureau :) pk j´y ai pas pense ^^
merci beaucoup en tout cas :)

fuzzy_eyebrow
fuzzy_eyebrow
Niveau 9
05 février 2005 à 23:34:05

sinon à la définitiion tu peux faire:

int Plateau[7][7] =
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

mais ça n´initialisera qu´au début.

jejej
jejej
Niveau 9
05 février 2005 à 23:36:22

Fuzzy_Eyebrow , c´est justement ce que j´evitais de faire , parceque si je souhaite agrandir plus tard mon tableau c la panique :)
8*8 = 64 zeros a ecrire ? houlolo
merci qd meme

bon , maintenant reste le probleme de l´ai , mais j´ai toute la nuit pour ca

fuzzy_eyebrow
fuzzy_eyebrow
Niveau 9
05 février 2005 à 23:45:27

si tu essaies d´agrandir ton tabealu tu ne pourras simplement pas. :non: tu ne peux pas passer de 7*7 à 8*8 comme ça. si tu veux agrandir prévoit une alloc dynamique.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment