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

Koyo-K
Koyo-K
Niveau 9
11 février 2005 à 16:19:48

On bosse sous linux en cours ? :ouch2:

JeanYvesYves
JeanYvesYves
Niveau 10
11 février 2005 à 16:28:29

Et oui, les profs te font bosser sous Linux.
Et apres, quand t´arrives a des entretiens d´embauche :
systeme :
- visual C++
et vous ?
- visual C++
et vous ?
- visual C++
Ah ! Bon...

Si, pour les programmeurs réseau, Linux ça se fait bien, mais dans énormément d´autres domaines... arf !

De toute façon, soyez rassurés : sous Wnidows ou Linux, le C reste du C.
Des fois, y´a des chtites variantes, mais pas énorme...

silence_libre
silence_libre
Niveau 10
11 février 2005 à 16:33:42

Pareil à l´université où je suis allé un an : que du Linux.

pouky10
pouky10
Niveau 6
11 février 2005 à 16:57:54

Salut, moi j´ai commencé à faire un casse-brique avec la SDL( j´utilise dev-c++ 4.9.7.0).Alors, j´ai commencé à faire une classe SDL_brique qui hérite de SDL_Rect(ce qui fonctinne), je l´ai mis dans ma source main en incluant edit_level qui sera mon module pour placer les brique à chaque lvl. Le code(pour l´instant) de edit_level est:

void edit_lvl1(SDL_brique* briq)
{
}

Comment fais-t-on pour que SDL_brique soit accessible dans edit_level

PS:J´ai les erreur suivante:

3 C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\main.cpp
In file included from main.cpp

2 C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\edit_level.cpp
`SDL_brique´ was not declared in this scope

2 C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\edit_level.cpp
`briq´ was not declared in this scope

3 C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\edit_level.cpp
variable or field `edit_lvl1´ declared void

3 C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\edit_level.cpp
syntax error before `{´

C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\Makefile.win
[Build Error] [main.o] Error 1

Ptival
Ptival
Niveau 10
11 février 2005 à 17:07:31

SDL_Brique c´est une structure que tu as créée ? Si oui alors tu inclue le fichier de son prototype je pense ( dans le cas où tu as bien foutu un proto hors de ton main...)

Les autres erreurs partiront d´elle-même je pense...Je sais pas vraiment comment tu as inclus, apparemment t´as pas de headers...?

pouky10
pouky10
Niveau 6
11 février 2005 à 17:29:25

bon, alors avec qu´est ce que tu m´as dit,j´ai changer des chose, j´ ai mis SDL_brique(c´est une class) dans un module brique que j´ai inclus à main.cpp et edit_level.cpp(je ne suis pas habitué au séparation de projet et n´y au prototype de class, mais je veux m´y habitué), où dois-je mettre les prototypes de ma classe, dois-je inclure brique dans le 2 autre modules?

Maintenant, mon début de main est:

  1. include < SDL\SDL.h>
  2. include < stdlib.h>
  3. include " edit_level.cpp"
  4. include " brique.cpp"

Le début de edit_level est:

  1. include " brique.cpp"

class SDL_brique;
void edit_lvl1(SDL_brique* briq)
{
}

et le code complet de brique est:

class SDL_brique : public SDL_Rect / /brique
{
public:
SDL_brique()
{
h=20;
w=50;
}
~SDL_brique(){}
Uint32 c;
};

pouky10
pouky10
Niveau 6
11 février 2005 à 18:50:47

:up:

nats126
nats126
Niveau 7
11 février 2005 à 19:36:10

un petit prob d´opperation logique

int main(int argc, char* argv[])
{
int a,b;
cin > > a;
cin > > b;
if ( ~((a<5)||(b<90)))
{
cout < < " ok \n";
}
system("pause");
return 0;
}

Le programme retourne toujours ok alors que ( si j´avais bien programmé) ca n´aurait du etre le cas que pour a<5 ou b<90 faux.
POurquoi ca marche pas?

inconnu[pure]
inconnu[pure]
Niveau 6
11 février 2005 à 19:46:02

Non,non tu as bien programmé.

Ptival
Ptival
Niveau 10
11 février 2005 à 19:51:34

~((a<5)||(b<90))

C´est comme :

! ((a<5)||(b<90))

? ??

Si oui, alors d´après l´agèbre de Boole c´est équivalent à :

! (a<5) && ! (b<90)

Soit :

( a>=8)&&(b>=90)

Or toi tu veux pas un ET mais un OU :

( a>=8)||(b>=90)
->
! (a<8) || ! (b<90)
->
! ((a<8)&&(b<90))

Voilà :)

Ptival
Ptival
Niveau 10
11 février 2005 à 19:52:07

Remplace mes 8 par des 5 évidemment :)

dnob700
dnob700
Niveau 10
11 février 2005 à 20:02:47

non, remplace juste le ~ par un !

je ne sais pas trop comment il marche, mais le ~ est un NON bit à bit et non pas un NON logique, alors peut-être qu´il prend l´expression de droite qui est un bool et qu´il l´a convertit en int avant de faire le ~ moralité que le bool soit true ( 0x00000001) ou false ( 0x00...), avec le ~ tu auras toujours plein de 1 et juste un zéro à la fin peut-être.

je viens de vérifier, c´est bien ça qu´il fait.

donc utilise ! et non pas ~

nats126
nats126
Niveau 7
11 février 2005 à 20:11:49

merci

pouky10
pouky10
Niveau 6
12 février 2005 à 00:30:29

mon message est rendu un peu loin, je vais réexpliquer un peu( je veux apprendre à créer des module). Je commence à faire un casse-brique en c++ avec une class SDL_brique qui hérite de SDL_Rect, ca marche dans main mais ça ne marche pas quand je la met dans un autre module . cpp(je ne suis pas habitué de séparé les projet). Quand je la met dans un autre module,voici ca marche pas. Voici les deux code:
Celui de main:

  1. include " class.cpp"
  2. include < SDL\SDL.h>
  3. include < stdlib.h>

int main(int argc, char** argv)
{
if(SDL_Init(SDL_INIT_VIDEO) ==-1) / /initialise la sdl
{
printf("%s" , SDL_GetError());
exit(1);
}
atexit(SDL_Quit);

SDL_Surface* screen;
screen = SDL_SetVideoMode(800,600, 32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN); / / mode graphique
if(screen==NULL)
{
printf("Can´t set screen %d", SDL_GetError());
}

SDL_Event event; / / gestion clavier
bool done=true;

SDL_Rect raq; / / création de la raquette
raq.x =350;
raq.y=570;
raq.h=10;
raq.w=100;

SDL_brique briq[50]; / /création de 50 brique
Uint32 rouge=SDL_MapRGB(screen->format, 222, 13, 7);
Uint32 vert=SDL_MapRGB(screen->format, 38, 160, 0);
Uint32 jaune=SDL_MapRGB(screen->format, 255, 255, 0);

while(done==true) / / boucle principale
{
SDL_PollEvent(&); / / gestion du clavier
if ( event.type ==SDL_KEYDOWN)
{
switch(event.key.keysym.sym)
{
case ( SDLK_LEFT): / /touche gauche pour aller à gauche
if(raq.x > 10)
raq.x -= 5;
break;

case ( SDLK_RIGHT): / /touche gauche pour aller à droite
if(raq.x < 690)
raq.x += 5;
break;

case ( SDLK_ESCAPE): / / escape pour quitté
done = false;
break;
}
}
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 45, 150, 250));
SDL_FillRect(screen, &, SDL_MapRGB(screen->format, 28, 128, 128));
SDL_FillRect(screen, &[0], jaune);

SDL_Flip(screen);
}

return 0;
}

Celui de class est:

class SDL_Rect;
class SDL_brique : public SDL_Rect / /brique
{
public:
SDL_brique()
{
h=20;
w=50;
}
~SDL_brique(){}
Uint32 c;
};

comment fais-t´on pour que ça marche et aussi comment utiliser la classe dans un autre module, j´ai les erreurs suivantes :

3 C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\class.cpp
base class `SDL_Rect´ has incomplete type

11 C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\class.cpp
syntax error before `;´

C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\class.cpp
In method `SDL_brique::SDL_brique()´:

7 C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\class.cpp
`h´ undeclared ( first use this function)

( Each undeclared identifier is reported only once

for each function it appears in.)

8 C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\class.cpp
`w´ undeclared ( first use this function)

C:\Documents and Settings\Leon P\Bureau\tuto\casse-brique(en développement)\Makefile.win
[Build Error] [class.o] Error 1

XyTiX
XyTiX
Niveau 8
12 février 2005 à 00:53:00
  1. include " class.cpp"

c´est pas possible. c´est #include " class.h" que tu dois avoir créé ne contenant que les proto et les structures de données.

LGV
LGV
Niveau 28
12 février 2005 à 04:16:14

notons que dans l´absolu, les include de . cpp ça marche relativement bien, en sachant un minimum ce qu´on fait ; pour ceux qui n´aiment pas foutre leur code inline ou les implémentations de templates dans les . h par exemple...

Ptival
Ptival
Niveau 10
12 février 2005 à 08:53:34

Dans ton class.cpp, il ya plusieurs problèmes :

Tu n´as pas inclus SDL.h, donc il ne connait pas le type SDL_Rect...

Ton " class SDL_Rect;" ça ne fait pas un type mais une classe vide à la place...Donc pour l´héritage c´est foutu

XyTiX
XyTiX
Niveau 8
12 février 2005 à 11:44:18

je suis tout à fait d´accord avec toi LGV et comme tu dis " en sachant un minimum ce qu´on fait" ce qui n´est pas le cas quand on commence :)

pouky10
pouky10
Niveau 6
12 février 2005 à 14:12:13

Merci pour toute vos réponse, finalement, j´ai pour la première fois fais de header et ça marche comme ça.

clad87
clad87
Niveau 5
12 février 2005 à 22:01:36

Slt, moi c´est juste pour ajouté une chose à un prog c++ : lire un fichier ini avec seulement 2 valeurs... Si quelqu´un peut me le faire je lui en serait reconnaissant ( j´ai les sources).

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