begin process at 2012 05 29 21:36:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Problème passage de C en C++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Membre Club Administrateur CodeS-SourceS
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

Membre Club Administrateur CodeS-SourceS
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&#8217;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

Membre Club Administrateur CodeS-SourceS
-> 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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales