Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/03/2007, à 15:42

otheym

[Résolu] [C++] emplacement des #include

Bonjour à tous,

Je voudrais savoir si les #include doivent se mettre obligatoirement au début du fichier ou non.
Car pour ce que je veux faire, j'aurais besoin de les inclures n'importes où.

En fait, je suis entrain de faire un tetris, mais il sera en plusieurs langues.
J'ai choisi de stocker chacune des langues dans un fichier .h séparé, et dans mon jeu, je permet à l'utilisateur de choisir la langue.
par exemple si:

#ifdef LANG_FR
#include "french.h"
#elif LANG_EN
#include "english.h"
#endif

Mais pour cela, si c'est après que je défini la langue, il y aura toujours la langue par défaut qui restera non ?

Dernière modification par otheym (Le 19/03/2007, à 17:25)


Aelita, je te promet que l'ont pourra bientôt vivre tous les deux.
Je te le jure mon amour.

Hors ligne

#2 Le 19/03/2007, à 15:56

qqun

Re : [Résolu] [C++] emplacement des #include

les includes tu n'est pas oblige de les mettre au debut du fichier , ms bon a deconseiller

de toutes facons je ne pense pas que tu va gerer les langues avec des includes smile
a moins que tu souhaites recompiler pour chaques langues.

car les #ifdef, #define, #include, seront substituer aux pre-processing.
donc je ne vois pas comment le joueur pourras changer la langue au cours du jeu par ce moyen !

ifdef LANG_FR
#include "french.h"
#elif LANG_EN
#include "english.h"
#endif

#3 Le 19/03/2007, à 15:59

otheym

Re : [Résolu] [C++] emplacement des #include

Effectivement j'avais pas pensé à cela lol
Je fais comment alors pour gérer plusieurs langues ?

Parce que la SDL_Config, impossible de la compiler donc peut pas m'en servir.
Au départ je voulais créer un fichier CFG ou INI par langue comme pour bcp de logiciels sous windows(logiciels gratuits wink), mais je ne sais pas le faire.


Aelita, je te promet que l'ont pourra bientôt vivre tous les deux.
Je te le jure mon amour.

Hors ligne

#4 Le 19/03/2007, à 16:48

qqun

Re : [Résolu] [C++] emplacement des #include

ben si tu n'a pas bcp de msg tu peux utiliser un fichier de config par langue avc un message par ligne
au demarrage tu charges le fichier de config de la langue par defaut dans un tableau de char* , qui te serviras apres pour l'affichage.

ex : msg[0] vaut "bonjour" msn[n]=blabla ect...

et dans ton menu , quand l'utilisateur change de langue tu recharge le fichier de conf correspondant.

ex:

fr.cfg:

Bonjour
Encore
Au revoir

en.cfg:

Hello
More
Bye
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define NB 3

char msg[NB][254];
char langue[64];

void lirecfg(char *nom)
{ 
    FILE  *in;
    char line[254];
    int nb=0;
   
    in=fopen(nom,"r");
    if(in==NULL)exit(1);  
    
    while(fgets(line,196,in)!=NULL)
    {
	strcpy(msg[nb],line);
	nb++;
        if(NB==nb)break;
    }

    fclose(in);
}

int  menu(){
	
	printf("\nchoix langue (fr ou en / autre = exit prg):");	
	scanf("%s",langue);
	printf("choix =%s\n\n",langue);
	
	if(strcmp(langue,"fr")==0)lirecfg("fr.cfg");
	else if(strcmp(langue,"en")==0)lirecfg("en.cfg");
        else return 1;

	return 0;
}

int main(void)
{
	int val;
	
	debut:
	
	val=menu();
	
	if(val==1)goto fin;
	
	printf("intro:%s\n",msg[0]);
	printf("milieu:%s\n",msg[1]);
	printf("fin:%s\n",msg[2]);
	
	goto debut;
	
	fin:
	
	return 0;

}

#5 Le 19/03/2007, à 16:55

otheym

Re : [Résolu] [C++] emplacement des #include

Oui, mais comme mon jeu sera en GPL, je voulais faire en sorte que l'utilisateur puisse si il le désire, créer un autre fichier de langue pour une autre langue, et ensuite me l'envoyer pour qu'il soit officielement inclus dans le jeu.

Là ta méthode oblige à mettre dans un ordre précis, hors avec un fichier INI, ont a:

[section]
variable=valeur

Ce qui permet de mettre dans l'ordre que je veux.
Sinon, il faut que je fasse un fichier expliquant à l'utilisateur comment créer le fichier de langue.

Enfin bon, si je trouve pas de meilleur idées, je ferais comme ça.


Quelqu'un n'aurais aps une meilleur idée ?


Aelita, je te promet que l'ont pourra bientôt vivre tous les deux.
Je te le jure mon amour.

Hors ligne

#6 Le 19/03/2007, à 17:06

qqun

Re : [Résolu] [C++] emplacement des #include

ben c sur ca c'est vraiment pas tres pratique ,mais c'est l'exemple de base,)
maintenant si tu veux faire qqchose de complet et pratique , et que tu as qq competences
en C ,et notion en  lex et yacc :

regarde ici 
http://ymettier.free.fr/articles_lmag/lmag29/lmag29.html

#7 Le 19/03/2007, à 17:25

otheym

Re : [Résolu] [C++] emplacement des #include

Merci pour le lien.
Je trouve ça vachement complex lol

Bon ce que je vais faire, dans un premier temps je vais appliqué le système de base, ensuite je verrais pour la prochaine release du jeu pour faire mieu wink

Merci à toi quand meme.


Aelita, je te promet que l'ont pourra bientôt vivre tous les deux.
Je te le jure mon amour.

Hors ligne

#8 Le 19/03/2007, à 17:53

qqun

Re : [Résolu] [C++] emplacement des #include

rem ya  pleins de solutions intermediaires .

dans un premier tps je pense que tu devrais regarder les src d'autres prg  opensrc  existants
et t'inspirer de ceux ci.

sur ce bonne chance pour ton dev
++