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
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
Besoin d'aide [ par mayapour ]
Bonjour,Novice en C sous Linux, j'ai besoin de conseil, bout de codes ou tout suggestions.Description: Pseudo remplassant de passwd utilisant un fichi
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE [WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE[WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE par FREMYCOMPANY
Je pense qu'ils ont besoin d'une piqure de rappel chez Microsoft : c'est bien gentil d'avoir une interface jolie, mais si c'est pour avoir un truc qui ne convainct pas dedans, c'est peine perdue.
---->
Système ouvert ----> Fermé ?
P...
Cliquez pour lire la suite de l'article par FREMYCOMPANY
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|