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
02 novembre 2004 à 14:59:55

hum !
evite cela :

int main( int argc, char *argv[ ], char *envp[ ] )

contente toi de :

int main(int argc, char *argv[])

pouky10 >
tout depend de ton code.

franco01 >
bizarre ! !
est ce que mon tuto avec les texture sur mon site marche chez toi ?

voir carrement de :

int main()

car les 2 premieres lignes sont utiles que si tu veux passer des parames en ligne de commande, je ne pense pas que ce soit ton but...
ton erreur est bizarre cependant...

jejej > :)

Sinon , en ce moment, comme vous l avez vu, je suis pas souvent la : je n ai helas que tres tres peu de temps d acces au net...

Je vous promet un come back d ici moins d un mois ! !

Liquilds-tabs
Liquilds-tabs
Niveau 5
02 novembre 2004 à 23:46:05

:salut:
Si quelqun passe dans le coin est qu´il pourrait m´expliquer quelque chose s´il vous plait.
Alors voila j´ai appris dans mon bouquin que les opérateur de postincrémention en C attribué noralement la valeur avant incrémention a la variable. Dans ce cas si x=1 alors après x++ dans mon programme x devrait toujours être égal a 1. Or que je tape ce programme

  1. include < stdio.h>

main()
{
int x;
x=1;
x++;
printf("x++ : %d", x);
return 0;
}
lors de l´exécution c marqué que x=2.
Merci de m´aider

Liquilds-tabs
Liquilds-tabs
Niveau 5
02 novembre 2004 à 23:48:22

J´ai oublier de préciser que j´utilise dev c++ comme compilateur bien que je ne sais pas si cela change grand chose dans mon cas.

Ptival
Ptival
Niveau 10
02 novembre 2004 à 23:55:02

Non c´est normal, tu affiches x après l´incrémentation, donc forcément il vaut 2.

Ce qu´on entend c´est que si tu fais :

int x=1,y=0;
y=x++;

C´est différent de :

int x=1,y=0;
y=++x;

Dans un cas, y prend la valeur de x, puis on applique l´incrémentation, dans l´autre cas on applique l´incrémentation, puis on affecte la valeur à y.

Liquilds-tabs
Liquilds-tabs
Niveau 5
03 novembre 2004 à 00:01:14

:merci:

gamemAker
gamemAker
Niveau 4
03 novembre 2004 à 09:40:45

trop dur ce langage !
A ne pas apprendre si vous voulez des résultats rapidement !

JeanYvesYves
JeanYvesYves
Niveau 10
03 novembre 2004 à 10:40:04

Boah ! en fait c est les subtilites du C, si vous voulez faire plusieurs choses en meme temps sur la meme ligne...

Mais perso je suis dans l optique de ne pas se faire chier :
c est a dire que j evite les :
y=x++; ou y=++x;

je mets :

x++;
y=x;

ou

y=x;
x++;

c est plus comphresensible je pense et on se casse moins la tete ! lol !

Liquilds-tabs
Liquilds-tabs
Niveau 5
03 novembre 2004 à 10:46:28

Ok merci je suivrait tes conseils JYY.

libjcc
libjcc
Niveau 4
03 novembre 2004 à 12:47:22

Une Bête question :

comment on transforme " 12345" d´une chaine de caractere en int qui vaut 12345

Ptival
Ptival
Niveau 10
03 novembre 2004 à 13:27:00

L´inverse d´un sprintf en fait...

C´est assez ardu sachant que dans un sprintf, on sait que tout ce qu´il ya dans l´int existe dans les caractères, alors que dans le sens inverse, on a des caractères qui ne seraient donc pas des chiffres.

Peut-être que tu peux créer ta propre fonction qui teste chaque case en partant de la fin, et qui ajoute ce nombre multiplié par la colonne ( dizaine, centaine) au nombre final...C´est pas clair ce que je dis :p

Et par exemple tu fais que si la case est vide, est un caractère différent des chiffres, ou vaut 0, on ne touche pas à l´int final.

JeanYvesYves
JeanYvesYves
Niveau 10
04 novembre 2004 à 14:45:46

La fonction

int atoi(char*)

est ton amie :) elle fait exactement ce que tu veux !
tu la trouveras dans stdlib.h

[HoLy]ShiT
[HoLy]ShiT
Niveau 9
04 novembre 2004 à 19:38:02

ca va les amis?

gollumkawder
gollumkawder
Niveau 10
04 novembre 2004 à 19:54:08

bah pourquoi... ça va pas toi ?

Liquilds-tabs
Liquilds-tabs
Niveau 5
04 novembre 2004 à 21:44:18

:salut:
Désolé j´ai encore besoin d´aide s´il vous plait. Alors voila je dois faire une boucle imbriquée toute simple avec les fonctions while et do while alors j´ai tapé ce code #include < stdio.h>
main()
{
int i, j;
i=1;
j=1;
while(i<4)
{
printf("Boucle externe numéro %d\n", i);
j=1;
do{
printf("Boucle interne numéro %d\n", j);
}while(j<4);
j++;
i++;
printf("Fin de la boucle externe numéro %d\n", i);

}
return 0;
}

A la compilation aucun problème mais lors de l´exécution du programme je n´obtiens que " Boucle externe numéro 1 " qui apparait à l´infine. POuvez vous me dire ce qui cloche dans la logique de mon code svp. :merci:

Liquilds-tabs
Liquilds-tabs
Niveau 5
04 novembre 2004 à 21:50:44

ps: je précise que la double déclaration de " j" est juste du a une erreur de copier collé

dnob700
dnob700
Niveau 10
04 novembre 2004 à 23:23:28

c´est très simple, dans la boucle interne, tu n´incrémente pas j, celle ci tourne donc indéfiniment.

écrit plutot ça pour la boucle interne :
printf("Boucle interne numéro %d\n", j++);

et vire le premier j=1 et le j++ à la fin, ils ne servent à rien.

Liquilds-tabs
Liquilds-tabs
Niveau 5
06 novembre 2004 à 22:23:54

:salut:
J´ai encore besoin de votre aide s´il vous plait. J´ai entrer ce programmae comme indiquer dans mon livre : http://wall.cours-info.net/?id=299
le seul problème c´est que dans le livre ils expliquent pas pourquoi on soustrait 48 à getchar. Pouvez vous m´espliquez pourquoi.
:merci:

JeanYvesYves
JeanYvesYves
Niveau 10
08 novembre 2004 à 15:29:53

liquilds-tabs >

pour la machine, TOUT est numerote.
Les caracteres ( les lettres, maj/min, chiffres, caracteres speciaux, etc...)
ont chacun un numero propre...
Ce numero est le meme sur TOUTES les machines.
la table qui contient, pour chaque numero, le caractere correspondant, est appelee table ASCII.

dans cette table, il s avere que le code 48 equivaut au caractere ´0´
que 49 equivaut a ´1´
50 a ´2´ etc...
65 equivaut a ´a´, 66 a ´b´ etc...
tu peux trouver la table ASCII partout sur le net.

ceci etait necessaie pour repondre a ta question :
--> getchar() te retourne le CODE du caractere que tu as rentre. Si tu entres un 1, getchar te renvoie donc un 49...
donc en faisant 49-48, tu tombes sur 1 ! pile ce que tu veux...
50-48 te donne 2, etc !
donc pour finir de repondre, ce -48 te convertit le code de ton nombre em nombre lui meme...

cependant, je trouve ca maladroit, car tu n es pas cense connaitre la table ASCII par coeur.
Ils auraient mieux fait de faire :

getchar()-´0´; au lieu de getchar()-48;
( veut dire getchar() moins code de 0 ( quand tu mets les ´´ ( donc ici 48)) ca se comprend nettement mieux pour toi, te pour la machine, c est pareil...)

en esperant avoir pu t eclairer !

Ruffi
Ruffi
Niveau 9
10 novembre 2004 à 12:32:50

Petites questions sur les singleton et les textures :

Je voudrait faire un singleton pour mes textures, du genre :
cTexture {
protected :
static LPDIRECT3DTEXTURE9 m_texture;
}

Questions :
Est-il possible de faire ensuite de faire des classes derive, une par texture :
cTextureMur : public cTexture {
} ( Est-il possible de mettre le static LPDIRECT3DTEXTURE9 de la classe mere virtuel pure ? )
Me crerat-il toutes les textures au demarage, ou il les creera a la premiere creation d´un objet? ( Pour eviter qu´il charge toutes les textures du jeux des le debut de programme)
Comment gerez vous vos textures ?

JeanYvesYves
JeanYvesYves
Niveau 10
10 novembre 2004 à 14:58:43

Je pense que tu te casse ta tete pour rien !
si tu mets ta texture en statique, elle n existera qu une fois , certes.
Cependant, ton constructeur sera appele plusieurs fois, donc elle sera rechargee plusieurs fois et ecrasera la texture d avant...

Je te conseille de charger ta texture une fois pour toutes et de la stocker, et de la referencer par un pointeur :
genre tu as un tableau de textures en memoire, et quand tu en utilises une, tu fait pointer un pointeur dessus.
Cependant, dans DirectX, LP... veut dire LONG POINTER, autrement dit, ton type est un pointeur deja...

Bon, je n ai pas trop le temps de detailler, mais bon, je pense que le plus simple est un tableau de textures...
Ensuite, libre a toi de modifier le tableau en cours de jeu pour en effacer ou en recharger.

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