Accueil > Forum > > > > Problème passage de C en C++
Problème passage de C en C++
samedi 26 novembre 2011 à 15:39:53 |
Problème passage de C en C++

tino2503
|
Bonjour, je suis novice en programmation. Je me met petit à petit au langage C++, j'avais déjà fais un peu de C avant. J'aurai quelques questions concernant un code que j'ai trouvé sur le net et sur lequel je me suis penché.
Tout d'abord, ce code est en C. J'ai besoin de la retranscrire en C++ pour le modifier personnellement. Le problème, c'est qu'il y a certaines choses que je ne sais pas faire. Par exemple :
"scanf ("%d", &choix);" //Donne quoi en C++ svp ?? Parce que "cin >> &choix;" ne marche pas...
Et quelle est le signification exacte de ce symbole "->", par exemple dans "liste->taille". Celà revient-il à faire en quelque sorte "liste.*taille" ??
Merci de votre aide, elle me serai vraiment utile :)
|
|
samedi 26 novembre 2011 à 18:32:19 |
Re : Problème passage de C en C++

rt15
|
Salut,
Code C/C++ : #include <iostream>
typedef struct
{
int _data;
} MyStruct;
int main()
{
MyStruct myStruct;
MyStruct* lpMyStruct = &myStruct;
myStruct._data = 1;
(*lpMyStruct)._data = 2;
lpMyStruct->_data = 3; // Equivalent à la ligne du dessus, mais aussi valable en C++
std::cin >> lpMyStruct->_data;
std::cout << myStruct._data << std::endl;
return 0;
}
|
|
samedi 26 novembre 2011 à 18:51:01 |
Re : Problème passage de C en C++

tino2503
|
Ok merci beaucoup !! Donc c'est une autre façon de manipuler un pointeur sur une structure.
J'aurai une dernière question, parce que je ne vois pas clairement comment je peux faire.
Je m'explique :
Le programme que je veux faire doit gérer un trafic de bus dans une ville. Enfin sans rentrer dans les détails ! Il doit juste recenser les stations et les lignes (RAPPEL : plusieurs stations sont situées sur une ligne, et une station peu être traversée par plusieurs lignes différentes). Ensuite, on veut pouvoir rajouter des stations, des lignes, en supprimer, afficher les lignes traversées par telle station, afficher les stations situées sur telle ligne, écrire le parcours pour aller de tel endroit à tel endroit, etc...
Je veux utiliser les listes chaînées pour faire cela afin de m'entraîner à les manipuler. En fait, je pense plutôt utiliser les listes doublements chaînées. Je voudrai savoir ce que vous pensez de ça, ou si vous avez une meilleur idée :
Code C/C++ :
#include <iostream>
typedef struct StationListe{
char *nom_station;
struct StationListe *station_precedente;
struct StationListe *station_suivante;
} Station;
typedef struct{
Station *debut;
Station *fin;
int taille;
} Ligne;
Qu'en pensez-vous? Est-ce que je pars sur des bases qui me permettrons de faire ce que j'ai écris plus haut? Ou bien qu'avez-vous à proposer?
Merci d'avance pour votre aide !!
|
|
samedi 26 novembre 2011 à 20:53:26 |
Re : Problème passage de C en C++

rt15
|
Cela ne me paraît pas tout à fait approprié.
Avec ça, une station a une station suivante et une station précédente.
Si deux lignes se croisent à cette station, tu es embêté.
(A moins de faire deux stations pour en fait en représenter une seule, ce qui n'est pas forcément viable non plus).
Me semble qu'il faudrait un tableau de stations, et les lignes pourraient contenir un tableau de pointeurs sur ces stations.
Mais c'est aussi vrai que la liste chaînée paraît plus représentative de ce qu'est une ligne. Mais à ce moment là, il faudrait ajouter la notion d'"arrêt".
Code C/C++ : typedef struct StationListe{
char *nom_station;
} Station;
typedef struct{
Arret* suivant
Arret* precedent;
Station* station;
} Arret;
typedef struct{
Arret *debut;
Arret *fin;
int taille;
} Ligne;
Cela dit, utiliser des structs, c'est un peu faire du C, là où en C++ on passerait par des classes.
|
|
samedi 26 novembre 2011 à 21:54:22 |
Re : Problème passage de C en C++

tino2503
|
Merci beaucoup pour votre aide, c'est vrai que ce que je faisais était voué à l'échec. Est-ce que vous pouvez en une phrase m'expliquer comment tirer le meilleur partis de ces structures? C'est à dire ce que je pourrais faire avec? Quand vous parlez d'un tableau de stations, vous voulez plutôt dire une liste chaînée d'Arret c'est ça? Et la structure Ligne me servirait juste à naviguer parmi les Arrets n'est-ce pas? Mais comment mettre en relation une suite donnée d'Arrets avec une Ligne. Désolé pour les questions, mais je suis vraiment novice, et ce que j’entreprends est un réel défi pour moi.
Merci!
|
|
dimanche 27 novembre 2011 à 09:46:40 |
Re : Problème passage de C en C++

rt15
|
-> Huit stations stockées dans un tableau (Ou un Vector pour du C++). Redimensionner le tableau permet d'ajouter ou d'enlever des stations. Attention à modifier les arrêts en cas de suppression d'une station.
-> Deux lignes stockées dans un tableau. De même On peut redimensionner le tableau pour avoir plus de lignes.
-> La ligne verte a 4 arrêts, sur les stations 1, 2, 6 et 8.
-> La ligne bleue a 5 arrêts, sur les stations 3, 4, 5, 6 et 7.
-> Les deux lignes se croisent sur la station commune 6.
-> Les arrêts sont formés par des listes doublement chainées.
-> Les flèches représentent des pointeurs.

|
|
dimanche 27 novembre 2011 à 11:43:43 |
Re : Problème passage de C en C++

tino2503
|
Super! Merci!
Pouvez-vous juste me donner un exemple d'initialisation svp? ça m'aiderai beaucoup à comprendre exactement les relations entre.
Sinon, il ne devrait pas y avoir un autre pointeur pour "Ligne verte" qui pointe vers le dernier "Arrêt" ? idem pour "Ligne bleue" non?
Merci encore !!
|
|
Cette discussion est classée dans : problème, code, passage, exemple, choix
Répondre à ce message
Sujets en rapport avec ce message
(MS VCpp) Problème de variables [ par YS1 ]
J'ai créé une DLL C+PP que je souhaite utiliser dans un programe VB.La fonction principale de la DLL renvoie un certain nombre de variables, qui sont
problème chaines de caractères [ par tintin72 ]
BonjourJ'aimerai avoir un petit éclaircissement sur les chaines de caractères.Voici un programme tout bête... char prenom[100]; cout gets(pr
Petit problème de code [ par mimyne ]
Bonjour g le code suivant:void Resultat_Clicked(Object* pSender, EventArgs* pArgs){ int operation = 5; char* chaine[10]; if (pSender == Btnres) { //o
Problème de code en c++ (fonction itoa) [ par mimyne ]
voila g le code suivant:void Resultat_Clicked(Object* pSender, EventArgs* pArgs){ int operation = 5; char* chaine[2]; if (pSender == Btnres) { { ito
If problème [ par Hades53 ]
J'ai un problème avec If :char*variable1;variable1 = "bonjour";if (variable1 == "bonjour") cout <
Un porblème : Oui un très gros ! [ par PiX3L ]
Salut tt le monde,bon c'est super le C++ surtout quand y a pas de bug !Mais le problème c'est que j'en ai et que ça fais 2 heures que je suis dessus e
C++ Visual basic [ par frail ]
salut,j'suis désespéréj'essaye depuis un moment déjà de traduire du code vb en code c++j'ai vu un exemple avec des API(exemple avec des constantes mai
pb stupide : diviser [ par guifr ]
Alors là, je sens que je vais craquer, je suis à deux doigts de commettre un ordicide ! sois mon pc est complètement stupide, ou alors c'est moi (ce q
enreg et lecture dans fichier [ par musco ]
salut je desirai garder des infos dans un fichier (ATTENTION JE SUIS EN C ET NE VEUT PAS DE C++)alors en faite je fais saisir par l'utilisateur le nbr
[C++][MFC] Problème avec les onglets [ par impress ]
Bonjour, Après avoir parcouru différents forums et tutoriaux, j'ai réussi (enfin !) à créer des onglets de façon propre.Le problème, c'est que je n'ar
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|