IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

conversion C vers C++


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1
    Points : 0
    Points
    0
    Par défaut conversion C vers C++
    Bonjour a vous
    Je suis novice dans la programmation et ne comprend pas trop le C++
    j'ai pour but de transcrire ce programme en C pour qu'il marche en C++ sous NetBeans 6.7
    voici mon code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    #include <stdio.h>
    #include <stdlib.h>
    #include <winsock.h>
    #include "MYSQL/mysql.h"
     
    int main(int argc, char** argv) {
     
        MYSQL mysql;     //Déclaration du pointeur de structure de type MYSQL
     
      //Déclaration des pointeurs de structure
         MYSQL_RES *result = NULL;
         MYSQL_ROW *row = NULL;
         unsigned int i = 0;
         unsigned int num_champs = 0;
         unsigned long *lengths; //On déclare un pointeur long non signé pour y stocker la taille des valeurs
     
    /*	mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg);
     
    arguments :
     
    //    * Le premier argument est le pointeur de structure que nous avons vu juste avant.
    //    * Le 2e argument est l'option que nous voulons configurer, nous utiliserons toujours MYSQL_READ_DEFAULT_GROUP qui lie les options spécifiées dans le fichier my.cnf.
    //    * Enfin le troisième argument est la valeur de cette option, donc vous pouvez mettre le nom que vous voulez.
     
    	mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag);
    aruguments :
     
        * Le premier argument est toujours le pointeur de structure.
        * Le 2e argument est le nom de domaine ou l'adresse de votre hébergeur, dans mon cas c'estwww.goldzoneweb.info.S'il est marqué 'localhost' pour vous je vous conseille de faire comme moi et mettre l'adresse de votre hébergeur car 'localhost' engendre des erreurs.
        * Le 3e argument est votre identifiant de connexion.
        * Le 4e argument est votre mot de passe.
        * Le 5e argument est le nom de votre base de données.
        * Le 6e argument est le port, je vous conseille de mettre 0 pour éviter les erreurs.
        * Le 7e argument est le socket à utiliser, je vous conseille de mettre NULL ici.
        * Et le 8e argument est le flag, je conseille de mettre 0.
     
      /^ \  Pour travailler en local (avec EasyPHP par exemple), il faut mettre localhost comme 2e argument,
     /!!\ puis root en identifiant, et il faut laisser vide pour le mot de passe.
     
    /!\
    */
        mysql_init(&mysql);			//Initialisation de MySQL
        mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option"); //Options de connexion
     
        if(mysql_real_connect(&mysql,"localhost","root","mdp","nom_bdd",0,NULL,0))    { //Si la connexion réussie...
     
                mysql_query(&mysql, "SELECT * FROM  enseignant");    //Requête qui sélectionne tout dans ma table scores
     
     
                //On met le jeu de résultat dans le pointeur result
                *result = mysql_use_result(&mysql);
     
                //On récupère le nombre de champs
                num_champs = mysql_num_fields(result);
     
     
                while (row = mysql_fetch_row(result)) { //Tant qu'il y a encore un résultat ...
     
                    lengths = mysql_fetch_lengths(result);//On stocke cette taille dans le pointeur
     
                   for(i = 0; i < num_champs; i++) //On fait une boucle pour avoir la valeur de chaque champs
                   {
                          printf("[%*s] ", (int) lengths[i], row[i] ? row[i] : "NULL"); //On ecrit toutes les valeurs
                   }
                   printf("\n");
                }
                mysql_free_result(result); //Libération du jeu de résultat
     
               mysql_close(&mysql);            //Fermeture de MySQL
        }
        else{
            printf("Une erreur s'est produite lors de la connexion à la BDD!");
        }
        return 0;
    }
    Dsl je n'arrive pas a le mettre ne type C étant donner que le site n'accepte pas le langage HTML
    Je pense pas que ce soit difficile mais je viens juste de réussir a compiler en C et n'a pas beaucoup de temps pour transcrire (c'est pour vendredi ).
    Si quelqu'un de bien gentil peut m'aider... ^^
    Je peux donner mon adresse mail en privée...


    Je compte sur vous .
    Merci

  2. #2
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Commence par utiliser la balise code, car là c'est carrément illisible !!!

    Pour convertir en C++, commence par remplacer "printf" par "cout".

    Si c'est pour demain, C/C+, netbeans, ça sent le TP d'étudiant que tu n'as pas envie de faire...on est pas là pour faire tes "devoirs"

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    le forum est munu de la fantastique et très enviée balise CODE.
    Un code en C est en règle général compatible et compilable en C++. Où est donc le souci ? Un message d'erreur ?
    Quitte à faire du C++, pourquoi netbeans ?
    As-tu au moins essayé de le compiler en C++ ? Pourquoi "l'avoir compilé" en C ? Où a été le souci pour compiler en C un code... C

    Je suis d'accord avec niglo..
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Un code en C est en règle général compatible et compilable en C++. Où est donc le souci ? Un message d'erreur ?
    Quitte à faire du C++, pourquoi netbeans ?
    As-tu au moins essayé de le compiler en C++ ? Pourquoi "l'avoir compilé" en C ? Où a été le souci pour compiler en C un code... C
    Absolument. Télécharge Visual Studio Express (gratuit), colle ton code là dedans et compile, c'est terminé !

    T'auras peut être juste à lui dire ou trouver le header et la lib pour mysql. Rien de bien méchant.
    Find me on github

  5. #5
    Membre éprouvé

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Septembre 2010
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Septembre 2010
    Messages : 450
    Points : 1 073
    Points
    1 073
    Par défaut
    Je ne suis pas d'accord avec mes voisins du dessus.

    Certes, on peux compiler un code C en C++ facilement (C++ est fait pour faciliter cela), mais un vrai code C++ c'est orienté objet et ça tire profit de la librairie standard C++.

    Compiler ce code C avec un compilateur C++ n'en fait pas un soft C++.
    Si vous moinsez, merci de répondre pour argumenter!
    Ma présentation

  6. #6
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par YannPeniguel Voir le message
    un vrai code C++ c'est orienté objet et ça tire profit de la librairie standard C++.
    Je suis d'accord, le C++, c'est de l'objet, mais dans le cas de ce code, une recompilation en C++ donnera un résultat purement C++ (si on remplace printf par cout). Non ?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Mais sa "question" initiale est
    transcrire ce programme en C pour qu'il marche en C++
    Or, il n'y a rien à faire pour qu'il fonctionne en C++, autre que de le (re)compiler.
    Le portage à part entière c'est autre chose effectivement.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #8
    Membre éprouvé

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Septembre 2010
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Septembre 2010
    Messages : 450
    Points : 1 073
    Points
    1 073
    Par défaut
    Citation Envoyé par niglo Voir le message
    Je suis d'accord, le C++, c'est de l'objet, mais dans le cas de ce code, une recompilation en C++ donnera un résultat purement C++ (si on remplace printf par cout). Non ?
    Non, c'est du faux C++, du C maquillé en C++.
    Le C++ est un langage Orienté Objet, du vrai C++ utilise donc des classes, des interfaces, de l'abstraction...
    Effectivement, tu peux prendre du code C et le compiler en C++, ça marche généralement bien. Mais une conversion ne consiste certainement pas à remplacer printf par cout.



    Citation Envoyé par Bousk Voir le message
    Mais sa "question" initiale est

    Or, il n'y a rien à faire pour qu'il fonctionne en C++, autre que de le (re)compiler.
    Le portage à part entière c'est autre chose effectivement.
    Sa question initiale n'est pas la bonne.
    Il le dit lui même: "Je suis novice dans la programmation"
    Donc moi, dev pro avec entre autre de l'XP en C++ (sans prétention), je me permet de recadrer la question car en vérité son problème ne se limite pas à ça. Je pense qu'il faut bien faire comprendre aux gens, surtout quand ils sont novices, qu'un soft qui compile n'est pas pour autant un soft correct.

    Plus vite tu corriges les mauvaises habitudes, moins cela en devient.
    Si vous moinsez, merci de répondre pour argumenter!
    Ma présentation

  9. #9
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par YannPeniguel Voir le message
    Effectivement, tu peux prendre du code C et le compiler en C++, ça marche généralement bien. Mais une conversion ne consiste certainement pas à remplacer printf par cout.
    Pour CE code, je ne vois pas quoi faire de plus pour avoir du VRAI C++.
    Enfin bref, l'auteur a disparu de la circulation...donc, comme dirait l'autre, bon weekend

  10. #10
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par YannPeniguel Voir le message
    Le C++ est un langage Orienté Objet, du vrai C++ utilise donc des classes, des interfaces, de l'abstraction...
    C'est nouveau ça. Et pourquoi SL, templates, RAII et exceptions ne seraient pas du C++ ?
    Une bonne lecture -> http://www.kton.demon.co.uk/youcan.htm (100% C++, 0% OO)

    Sinon, comme Bousk et d'autres, cela devrait compiler en C++.
    Après, voilà un bien étrange TP à mélanger C++ et MySQL.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  11. #11
    Membre éprouvé

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Septembre 2010
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Septembre 2010
    Messages : 450
    Points : 1 073
    Points
    1 073
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    C'est nouveau ça. Et pourquoi SL, templates, RAII et exceptions ne seraient pas du C++ ?
    Une bonne lecture -> http://www.kton.demon.co.uk/youcan.htm (100% C++, 0% OO)

    Sinon, comme Bousk et d'autres, cela devrait compiler en C++.
    Après, voilà un bien étrange TP à mélanger C++ et MySQL.
    ça en est aussi, j'ai mis "..." pour sous-entendre qu'il y avait un certain nombre d'autres éléments utilisables.

    Le sens de mon propos est de signaler qu'il ne suffit pas de compiler du code C avec G++ ou autre pour faire des chocapics. Et remplacer printf par cout n'est qu'un élément parmi d'autres pour faire du vrai C++.

    Citation Envoyé par niglo Voir le message
    Pour CE code, je ne vois pas quoi faire de plus pour avoir du VRAI C++.
    Enfin bref, l'auteur a disparu de la circulation...donc, comme dirait l'autre, bon weekend
    Déporter la requête dans une fonction qui renvoie un tableau de string C++ serait un petit peu mieux, par exemple, que manipuler des char*.

    Après, je ne sais pas d'où viens la librairie C utilisée pour accéder à MySQL, mais il y a des libs C++ pour cela.
    http://tangentsoft.net/mysql++/
    Et l'auteur a disparu, mais on est Vendredi
    Si vous moinsez, merci de répondre pour argumenter!
    Ma présentation

  12. #12
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    Comme Luc je ne vois pas en quoi un code C++ doit forcément utiliser le paradigme objet. Si le C++ est multi-paradigme c'est bien pour tirer profit de ces différentes facettes, pas d'une seule.

    Tu as raison sur le caractère de code "non-C++" mais, AMA, tu te trompes en insistant sur la nécessité d'un caractère objet. Et si son objectif est de "bien faire les choses", la première chose à faire c'est de se tourner vers quelque chose écrit en C++ (sinon il se retrouvera nécesseraiment avec une partir "jonction" entre le C et le C++).

    Cependant j'ai l'impression que son objectif est tout autre et qu'il a juste besoin d'un code de ce genre pour faire autre chose, et dans ce cas il est, AMA, plus utile qu'il se concentre à bien faire cet autre chose qu'à apprendre un nouvelle bibliothèque ou écrire un couche de fork.

  13. #13
    Membre éprouvé

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Septembre 2010
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Septembre 2010
    Messages : 450
    Points : 1 073
    Points
    1 073
    Par défaut
    AMA, tu te trompes en insistant sur la nécessité d'un caractère objet.
    C'est vrai, comme dit plus haut, que C++ propose tout un lot d'autres possibilités. Pardonnes moi, mon cerveau est maintenant contaminé par les technos Java.

    dans ce cas il est, AMA, plus utile qu'il se concentre à bien faire cet autre chose qu'à apprendre un nouvelle bibliothèque ou écrire un couche de fork.
    Pas question d'une couche de fork, ya déjà plein de libs C++.

    Etant donné que cela ressemble a un TP de C++, si tu rend du C maquillé ça ne le fait pas niveau note, pour peu que le prof soit strict.
    Si vous moinsez, merci de répondre pour argumenter!
    Ma présentation

  14. #14
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Citation Envoyé par YannPeniguel
    Etant donné que cela ressemble a un TP de C++, si tu rend du C maquillé ça ne le fait pas niveau note, pour peu que le prof soit strict.
    Ouais, mais se faire faire son TP par un forum, ça le fait pas niveau apprentissage...

  15. #15
    Membre éprouvé

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Septembre 2010
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Septembre 2010
    Messages : 450
    Points : 1 073
    Points
    1 073
    Par défaut
    Citation Envoyé par therwald Voir le message
    Ouais, mais se faire faire son TP par un forum, ça le fait pas niveau apprentissage...
    C'est bien pour ça que personne ne lui a filé de code, et j'espère que personne ne le fera.
    Si vous moinsez, merci de répondre pour argumenter!
    Ma présentation

  16. #16
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    De toute façon, il veut faire du C++ sous NetBeans 6.7, c'est déjà mal barré à la base.

    (quitte à troller, autant le faire correctement )
    Find me on github

Discussions similaires

  1. Conversion Unix vers DOS...
    Par nicosfly dans le forum Langage
    Réponses: 4
    Dernier message: 23/06/2008, 17h53
  2. [VBA-E] macro conversion excel vers csv
    Par baboune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/07/2004, 09h23
  3. conversion Access vers SQL
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/03/2004, 13h57
  4. [langage] conversion décimal vers hexa
    Par chipster dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2004, 16h05
  5. Conversion Timestamp vers varchar
    Par stejutt dans le forum SQL
    Réponses: 4
    Dernier message: 08/01/2004, 08h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo