Accueil > Forum > > > > j'arrive pas a l'expliquer en un mot...
j'arrive pas a l'expliquer en un mot...
vendredi 4 mai 2007 à 23:21:26 |
j'arrive pas a l'expliquer en un mot...

Titof301
|
Bonjour a tous, j'ai une question probablement bête mais bon ( ). Est-il possible d'utiliser le contenu d'une variable int par exemple à l'intérieur d'un programme pour... hum un exemple serait plus simple...
bool V_0(char[][16], char[][12]), V_1(char[][16], char[][12]), V_2(char[][16], char[][12]), V_3(char[][16], char[][12]), V_4(char[][16], char[][12]), V_5(char[][16], char[][12]), V_6(char[][16], char[][12]), V_7(char[][16], char[][12]), V_8(char[][16], char[][12]), V_9(char[][16], char[][12]); int extract[10][3] = {{1,10},{12,15},{29,3},{33,5},{39,2},{42,1},{44,3},{48,2},{51,4},{56,7}}, i=0, j=0; char donnees[10][16]={'\0'}, temp[16]; for (i=0; i<10; i++) { extraire_chaine(chaine,extract[i][j],extract[i][j+1],donnees, i); cout << donnees[i] << "voir" << endl; V_i (donnees, tab_marques); <====== }
Donc bon j'était en pleine recherche pour raccourcir mon programme, et j'ai penser à sa (et qui pourrais me servir plus tard). En gros, j'ai plusieurs fonction qui ont un nom de type V_0, V_1, V_2, etc, ET à l'intérieur de mon FOR j'utilise le i pour des fonctions. Je voulais savoir si il était possible de faire un seul appel de fonction dans le FOR en se servant de la valeur de mon i (0 à 9) pour qu'elle soit appeler à chaque passage, dans les différentes fonctions? J'ai essayer quelques trucs mais j'arrive pas... alors est-ce possible?
merci d'avance 
|
|
samedi 5 mai 2007 à 00:08:30 |
Re : j'arrive pas a l'expliquer en un mot...

BruNews
|
Nenni, après compilation une fonction est simplement une adresse donc plus de nom à donner. Peut se résoudre par un tableau de pointeurs de fonction.
ciao... BruNews, MVP VC++
|
|
samedi 5 mai 2007 à 03:33:33 |
Re : j'arrive pas a l'expliquer en un mot...

Titof301
|
merci beaucoup!!! effectivement avec un tableau de pointeur sa fonctionne nickel  Par contre, j'ai un petit probleme d'un autre ordre. Je ne comprends pas vraiment pourquoi (ptete la fatigue... lol)... Je veux par exemple convertir un char en int : bool V_2(char donnees[10][16], int a) { if (atoi(donnees[a][0]) == 2) return true; else return false; et il me donne cette erreur : error C2664: 'atoi' : cannot convert parameter 1 from 'char' to 'const char *' j'ai déjà utiliser cette fonction (atoi) d'une manière un peu différente, mais là, où est le probleme? Merci d'avance!
|
|
samedi 5 mai 2007 à 08:42:12 |
Re : j'arrive pas a l'expliquer en un mot...

gagah1
|
Si tu veux convertir un char en int , utilises l'operateur cast: (int)donnees[a][0]; La fonction atoi convertit une chaine de caractère càd un tableau de char terminer par un caractère NULL. Si tu veux utiliser atoi , castes comme ceci: atoi((const char*)donnees[a][0]);
|
|
samedi 5 mai 2007 à 10:34:11 |
Re : j'arrive pas a l'expliquer en un mot...

emmatopiak
|
Salut, Tu peux pas appeler directement V_i comme tu pourrais le faire dans des langages interprétés.
Ce que tu peux faire en C par contre, c'est un tableau de fonctions. La syntaxe va être complètement pourrie par contre.
Tu as des fonctions : bool V_0(char **, char **); Un pointeur sur cette fonction s'écrit : bool (* V)(char **, char **); Un tableau de pointeurs devrait s'écrire : bool (* V[10])(char **, char **);
Au pire tu mets deux étoiles avant V plutôt que *V[10], je n'ai pas pu tester. Une fois que c'est fait, il faut initialiser ce tableau en mettant : V[0] = V_0; V[1] = V_1; ...
Mais je me demandais si le plus simple est pas de faire passer le paramètre i en paramètre aux fonctions V_i ? Parce que le traitement de V_i doit etre dépendant du paramètres i plutot. Ca devrait être plus simple à faire.
--
atoi ca convertit un char * en int et la tu lui passes un char Le plus simple est de faire (c-'0') qui va te renvoyer la valeur entière correspondant au chiffre
@++
Une autruche ne se cuit pas aux petits lardons.
|
|
samedi 5 mai 2007 à 16:37:07 |
Re : j'arrive pas a l'expliquer en un mot...

ncoder
|
Tu n'as qu'à faire if (atoi(donnees[a]) == 2) A+ Bonne programmation Site
|
|
samedi 5 mai 2007 à 23:44:59 |
Re : j'arrive pas a l'expliquer en un mot...

Titof301
|
Merci a tous pour votre aide!! pour le probleme no1 avec les V_i, j'ai réussi grace au tableau de pointeur de fonction. Ca me donne en gros: bool (*ptrFonction[])(char[][16], int, char [][12]) = { V_0, V_1, V_2, V_3, V_4, V_5, V_6, V_7, V_8, V_9 };
for (i=0; i<10; i++) { extraire_chaine(chaine,extract[i][j],extract[i][j+1],donnees, i); if (!ptrFonction[i](donnees, i, tab_marques)) cout << donnees[i] << " n'est pas valide!!!" << endl; }
Pour le prob no2, bah en ce moment j'ai tester ces 2 la qui marchent : if ((donnees[a][0] - '0') == 2) (j'ai lu à quelque part le principe, je crois comprendre en gros...) if (atoi(donnees[a]) == 2) (ca marche aussi, mais pourtant donnees[a] contient par exemple 2HN ...comment sa se fait que sa marche quand meme?)
et pour le cast, quand je fait test=int(donnees[a][0]); test contient 53 au lieu de 5 par exemple, je l'utilise mal? Je sais que les autres marchent mais le cast pourrait surement me servir un jour ou l'autre.
|
|
samedi 5 mai 2007 à 23:55:29 |
Re : j'arrive pas a l'expliquer en un mot...

Titof301
|
ah pendant que j'y pense, je me demande sa depuis un bout, est-ce qu'il y a un moyen de faire plusieurs comparaisons dans un if par exemple sans devoir retaper l'argument de gauche a chaque fois? du style :
if (atoi(donnees[a]) == 2 || 4 || 5 || 9)
au lieu de : if (atoi(donnees[a]) 2 || atoi(donnees[a]) == 4 || atoi(donnees[a]) == 5 || atoi(donnees[a]) == 9)
|
|
dimanche 6 mai 2007 à 00:08:30 |
Re : j'arrive pas a l'expliquer en un mot...

emmatopiak
|
Salut,
Le seul moyen c'est de faire un switch.
switch (atoi(donnees[a])) { case 2: case 4: case 5: case 9: printf("truc\n"); }
Une autruche ne se cuit pas aux petits lardons.
|
|
dimanche 6 mai 2007 à 00:18:08 |
Re : j'arrive pas a l'expliquer en un mot...

BruNews
|
Si tu es certain qu'il n'y a qu'un chiffre comme dans "2HN" alors la version: octet - '0' est nettement plus performante que atoi().
ciao... BruNews, MVP VC++
|
|
Cette discussion est classée dans : donnees, arrive, possible, char, extract
Répondre à ce message
Sujets en rapport avec ce message
modifier un fichier [ par XorCo ]
Voilà le but est que je puisse modifier un fichier .. donc le lire et dès que j'arrive à un char spécifique je dois écrire qqchose.Je suppose que je d
prog en C, ecriture puis lecture de donnees de donnees dans un fichier fichier txt [ par 01472583690 ]
Salut a tous ! voici mon probleme : Dans mon programme l'utilisateur doit entrer des donnees ( des char (nom, ville .....) , ainsi que des int ( age,
cast c++ [ par mnaulet ]
Bonjour,Est-il possible de supprimer les erreurs du compilateur sur les cast en c++.J'ai l'erreur suivante lors de l'appel à la fonction suivante :get
passage d'un char[] par reference [ par tibob51 ]
Bonsoir a tous, j'ai un problème que je n'arrive pas à comprendre.Je programme depuis peu sous dev c++, et j'ai une syntaxe que j'utilisai sous borlan
Version de programme sous Visual 97 [ par themaste ]
Salut a tous!Voila, je viens de récupérer un vieux programme dont je dois faire des mise à jour. Je dois bosser sous visual studio 97, et je n'arrive
envoyer un entier avec send() [ par nostalgius ]
Salut tout le monde.. Voilà, tout est dans le titre du poste, j'ai bon cherché, j'arrive pas à envoyer un simple int par la fonction send(), c'est dû
Modifier les propriétés des controles boutons (image, texte, couleur, ...) [ par skirby ]
Bonjour tout le monde,J'aurais voulu savoir si il était possible de créer des boutons sur lesquels on pourrait :- afficher une icone (depuis un fichie
structure [ par logant83 ]
bonjoir, enfaite voila j'aimerai pouvoir exploiter une structure mais voila j'i arrive pas. struct connect_nick { //ma structure char pseudo[1000
Pb fichier en C [ par lenneth666 ]
alors voilà j'aimerais récupérer les lignes d'un fichier pour les mettre dans un char **pour ensuite trier les lignes de ce fichier. Dc je récupere d
conversion [ par nathdiscaz ]
Bonjour je voudrais convertir du int en unsigned char tel ke : <span style="color: rgb(1
Livres en rapport
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|