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++

PEACE_and-LOVE
PEACE_and-LOVE
Niveau 9
04 juillet 2004 à 01:14:22

Question bête mais...y´as Cin dans le C? ( pas le C++! LE C!)

LGV
LGV
Niveau 28
04 juillet 2004 à 03:29:31

tiens, ce que dit dnob700 m´amène à une question... vu que l´adressage se fait toujours en SEGMENT:OFFSET, où segment et offset sont des REG 32 bits, doit-on effectivement en déduire que la RAM adressable est de 2 Go max ( disons 4 avec les non signés) ? Je ne suis pas persuadé que ce soit le cas :-?

techslash
techslash
Niveau 8
04 juillet 2004 à 08:46:29

C´est bien ça, un unsigned long est trop grand pour être remplit avec la mémoire des ordis d´aujourd´hui :) .

Merci de vos explications, j´avais à l´idée qu´un long était beaucoup plus limité que ça en sa taille... Je devrais aller chercher les formules qui calculent ça.

:d) LGV, la seule façon de le savoir, c´est de fourrer autant de ram qu´il possible dans un PC et d´essayer de la remplir :-) .

lalelale
lalelale
Niveau 5
04 juillet 2004 à 14:31:01

Et, comment fait on pour mettre des structures dans des structures ( c´est marqué dans l´un de vos tutos, mais je n´ai pas tres bien compris).

Sinon, comment fait on pour affiché des valeurs aléatoires de 0 à 1? est-ce que ça , ça va?

double x=1>=x>0;
? ?

( au passage, bravo pour vos tutos!! Meme un noob comme moi à pu apprendre bcp de choses!!!Par contre, vous devriez changer le nom, pour qu´il soit plus accesible).

lalelale
lalelale
Niveau 5
04 juillet 2004 à 14:56:37

euh, je voudrais rajouter que je parle de Jean Yves Yves

lag-it
lag-it
Niveau 10
04 juillet 2004 à 14:59:16

Pour mettre une structure dans une structure ?
Soient A et B deux structures telles que :

struct A
{
. ..
};

struct B
{
. ..
struct A variable;
}

Sachant qu´en C++, tu peux écrire simplement :

struct B
{
. ..
A variable;
}

Et pour générer un nombre compris entre 0 et 1, tu fais :

int nombre = rand()%2;

LGV
LGV
Niveau 28
04 juillet 2004 à 15:01:27

valeurs aléalatoirs => utilises rand() et randseed() ( cf. MSDN pour un exemple d´utilisation). On applique d´abord randseed() ( généralement avec une valeur non connue au compile time, telle que le temps), histoire d´initialiser le générateur pseudo-aléatoire ; ensuite un coup de rand() te renvoie un entier qqcq : à toi de faire ce qu´il faut pour le ramener dans ton intervalle.
A noter que rand() est une opération couteuse, une bonne idée consiste à en générer un bon paquet à l´avance, et à faire boucler tes différentes utilisations sur cette meme plage de valeurs.

gollumkawder
gollumkawder
Niveau 10
04 juillet 2004 à 16:54:21

peace_and-love
Posté le 04 juillet 2004 à 01:14:22
Question bête mais...y´as Cin dans le C? ( pas le C++! LE C!)

Tu veux dire le cin du Cpp dans le langage C ? Euh je dirais logiquement que non vu que le cpp est une évolution du C, le cin en C ça serait pas stdin par hasard ?

--log

PEACE_and-LOVE
PEACE_and-LOVE
Niveau 9
04 juillet 2004 à 21:58:56

Autre question :

J´ai acheter La bible du programmeur aujourd´hui et ils me parle de caractère d´échappement!

Et puis en fait il me dise de configurer un fichier(d´ailleurs pas présent sur mon ordi!) afin d´activer un driver ANSI pour pouvoir utiliser les caractères d´échappement!

Alors vu que je peut pas configurer le fichier, je décide de fouiller dans les options de Dev-C++! Et là je trouve :

Support All ANSI Standard C program...donc je coche la case!

Alors ensuite je pense que le compilateur est configuer, alors je décide de commencer a utiliser les caractères d´echappement :

1er truc : effacer l´écran :

printf ( " \033[2J");

Sa marche pas! Sa efface pas l´écran! Sa m´écrit :

:g) [2J

Donc je me suis rendu compte que \033 sa correspondait à !

2em truc :

Utiliser le pilote Ansi pour afficher des couleurs :

printf ( " \033[44m"); < < c´est ecrit dans le bouquin!

C´est censé changer la couleur du texte! Mais je me suis rendu compte que y´avais pas de texte! alors j´ai rajouté :

( " \033[44m Salut")

Donc je compile, et là, sa affiche sa :

:g) [44m Salut

Arff...c´est quoi le probleme!! Argh...

JeanYvesYves
JeanYvesYves
Niveau 10
04 juillet 2004 à 23:41:44

lalelale > merci pour ton compliment :)

pour les struct dans les struct, lag-it m´a devancé :)

il te propose meme la ligne :

int nombre = rand()%2;
qui permet tres facilement de créer un nombre au pif entre 0 et 1

j´ajouterai cependant qu´au début du programme, pour " mélanger" le compteur de nombres aléatoires, il faut mettre :

srand(time(NULL));

en incluant < stdlib.h> et < time.h>

Je me rends compte que je n´ai pas fait de tuto la dessus encore !
J´en ferai un la dessus a l´occas :)

JeanYvesYves
JeanYvesYves
Niveau 10
04 juillet 2004 à 23:42:33

peace_and-love > cin est exclusivement du C++
c´est une instance de la classe istream.

JeanYvesYves
JeanYvesYves
Niveau 10
04 juillet 2004 à 23:46:53

LGV > avec un processeur 32 bits, tu ne peux adresser que 4 Go de RAM ( ram virtuelle comprise)

Avec l´arrivée des pross 64 bits, qui auront un autre assembleur, mais compatible, c´est possible d´adresser +.

Les types :
" int_64" ( il doit manquer un _ ou 2) sous visual
ou " long long" pour gcc existent déja
apres, je ne sais pas si ça prend encore bien en charge les pross 64 bits, pas encore confronté a la barre des 4Go
mais a mon avis, on va vite en entendre parler de ce probleme...

JeanYvesYves
JeanYvesYves
Niveau 10
04 juillet 2004 à 23:49:13

peace_and-love > jamais vu des syntaxes pareilles !

je pense, au vu du code, que le gars essaie de piloter des fonctions en envoyant des données sur stdout, et en se servant des caracteres ASCII de controle...

mais dans ces cas la, je pense que le plus propre est de descendre en assembleur :

_asm
{

}

est un corps accepté en C++...

techslash
techslash
Niveau 8
05 juillet 2004 à 08:38:19

J´ai hésité entre partir un nouveau topic ou continuer à poster ici.

J´ai finalement décidé de continuer sur ma lancée, même si ce n´est pas vraiment une question, je pense que la chose est mieux en contexte ici.

Mon wrapper pour lire les . ini est terminée. Je sais que ce n´est rien de particulièrement intéressant ( je veux dire, c´est que des foutus . ini, rien de 3D :) ) mais j´offre quand même mon travail ici.

J´ai tout envoyé à cette adresse:
http://webmouton.pingouin.ca/cplusplus/ ( c´est très laid je sais mais je vais pas faire un design pour ça quand même :-))) )

Je sais, j´ai dis que je n´avais pas l´intention de distribué mais j´ai pensé qu´il y avait peut-être 1 personne intéressé ici, sait-on jamais :) .

Côté instruction, c´est très simple. On déclare un objet INIw, lui assigne un path vers le fichier et on utilise la methode retrieve(...) pour ramener la valeur ( la fonction retrieve est overloadé pour pouvoir ramener des char, int, long, float, double, unsigned int, unsigned long) bien que dans certains cas il ne s´agisse que du transtypage d´une fonctionne atoX ( ou X est i, f ou l). Un exemple rapide et ce long post est terminé:

J´ai un fichier ini qui ressemble à ça:
eger = 200
nom = Gonzo la bonza
argent = 20.2

INIw MonINI("fichierini.ini");
int eger = 0; / / que je suis drôle... ( int eger)
MonINI.Retrieve("eger" , eger); / / eger contien maintenant 200
char nom[16];
MonINI.Retrieve("nom" , nom); / / nom contient Gonzo la bonza
float money;
MonINI.Retrieve("argent" , money); / / money contient 20.2

Les restrictions dans le . ini sont minimes. Il ne peut y avoir d´espace(s) dans les noms de paramètres ( ici eger, nom et argent) mais il peut y en avoir dans les valeurs textes ( Gonzo la bonza). Vous pouvez mettre autant d´espace avant le nom du paramètre et avant/après le signe de = que vous voulez. Vous pouvez même ne pas mettre de signe de égal et juste utiliser un espace ( bien que ça réduise la clareté du fichier). Pas supposé pouvoir y avoir de bufferoverflow, les lignes sont lus avec la procédure que j´ai posté plus tôt... unsigned long étant le max. pouvant être lu ( et étant une valeur qui ne peut pas être atteinte sur un pc 32 bits conventionnel).

Désolé pour le long post.

techslash
techslash
Niveau 8
05 juillet 2004 à 08:42:09

Oh et, évidemment, c´est le premier truc concret que je fais en C++ alors si vous avez des commentaires ( bon/mauvais), des critiques ( polies quand même), j´aimerais les entendre !

lalelale
lalelale
Niveau 5
05 juillet 2004 à 13:53:44

et, Jen Yves Yves, à quand un tuto sur les classes?

Sinon, je ne comprends pas. rand()%2 me renvoie tjs 1!! J´ai alors essaye avec 55, et ça me renvoie tjs 42. Est-ce pour ça que vous le nomez " pseudo-aléatoiere"? Sinon, on peut surement le faire changer avec le temps(enfin, c´est ce que j´ai compris de vos posts précedents)mais je ne sais pas du tout comment faire!

ALors, s vous pouviez donner une explication des classes et des rand non " pseudo-aléatoire", ce serait sympa ; )

JeanYvesYves
JeanYvesYves
Niveau 10
05 juillet 2004 à 14:10:38

alors pour le rand qui renvoie touours la meme chose, c´est parce que tu n´utilise pas srand() au début du programme.

regarde mon topic plus haut :)

si tu veux une image : imagine que tes nombres tirés au hasard soient des jetons dans un sac.
au début du programme, le sac est toujours pareil : donc le gars qui pioche va toujours prendre celui du haut
le srand(time(NULL));
a placer au début du programme, sert a mélanger le sac :)

JeanYvesYves
JeanYvesYves
Niveau 10
05 juillet 2004 à 14:11:16

tuto sur le classe, ça finira par venir :)
en ce moment, je sors bcp C pour ça :)

lalelale
lalelale
Niveau 5
05 juillet 2004 à 14:27:37

Merci pour tout.

lalelale
lalelale
Niveau 5
05 juillet 2004 à 14:33:47

Je ne comprends pas. J´ai fait exactement comme convenu, mais ça mfait tjs le même chose! J´ai mis ça :[code]

  1. include < iostream>
  2. include < stdlib.h>

double srand();
int main()
{
double a;
a=rand()%45;
cout<<a;
cin.get();

}[/code]

Sinon, n´oubliez pas. Si vous avez le tps, expliquez moi ce qu´est un classe. Comment s´en servir surtt ; )

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