Question bête mais...y´as Cin dans le C? ( pas le C++! LE C!)
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 :-?
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.
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
.
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).
euh, je voudrais rajouter que je parle de Jean Yves Yves
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;
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.
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
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 :
[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 :
[44m Salut
Arff...c´est quoi le probleme!! Argh...
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 ![]()
peace_and-love > cin est exclusivement du C++
c´est une instance de la classe istream.
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...
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++...
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.
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 !
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 ; )
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 ![]()
tuto sur le classe, ça finira par venir ![]()
en ce moment, je sors bcp C pour ça ![]()
Merci pour tout.
Je ne comprends pas. J´ai fait exactement comme convenu, mais ça mfait tjs le même chose! J´ai mis ça :[code]
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 ; )