Scanf vers commande System()

cs_Nir3x Messages postés 1 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 16 mai 2011 - 16 mai 2011 à 19:59
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 17 mai 2011 à 00:50
Bonjour à tous le IDNautes,

Je suis actuellement en train de programmer un petit logiciel de jeu, mais je n'arrive pas à récupérer des données qui sont tapées via la commande Scanf.

Serait-il possible d'avoir de l'aide s'il-vous-plaît ?


Voici le code sur lequel je suis bloqué.

Code :

    #include <cstdlib>
    #include 
    #include <stdio.h>
    typedef struct {
    char pseudo [10];
    char ip [16];
    char port [4];
    } personne;
    int main () {
            personne p;
        system("echo." );
            printf("Veuillez entrer le pseudo 'entre 1 et 10 carac' :\n" );
            scanf("%s",p.pseudo);
            printf("Veuillez entrer l'adresse IP:\n" );
            scanf("%s",p.ip);
            printf("Veuillez entrer le port:\n" );
            scanf("%s",p.port);
        system("cls" );
        system("echo." );
           
            printf("Voici les caracteristiques de cette personne:\n" );
            printf("Pseudo=%s\n",p.pseudo);
            printf("@Ip=%s\n",p.ip);
            printf("Port=%s\n",p.port);
        system("cd E:\xxx\xxx\xxx" );
        system("start xxx.exe " );
            system("PAUSE" );
        return 0;
    }



Voilà, enfaite ce code lance un jeu codé en C (qui se joue en LAN) et pour bien le paramétrer au lancement, j'ai besoin d'un pseudo, d'une adresse IP et d'un port. Ils sont obligatoirement demandés.
Jusque là, j'ai réussi à demander tout cela à l'utilisateur du programme via la commande scanf, mais après je n'arrive pas à lancer le programme, avec les infos de l'utilisateur, dans la commande.

Pour lancer le programme :

il faut passer par l'invite de commande,


Code :

aller dans le dossier où se trouve le programme

    cd E:\xxx\xxx\xxx



et le lancer avec la commande suivante :

Code :

    start xxx.exe "l'adresse IP" "le port" "le pseudo"




Et la je suis bloqué parce que je n'arrive pas à reprendre les données tapées avec les scanfs pour les mettres dans la commande DOS.


Voilà, je vous ai expliqué mon problème.
Merci d'avance.
Cordialement, Nir3x000

1 réponse

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
17 mai 2011 à 00:50
"system()"... bof à éviter.

Préfère "shellexecute" (Windows) ou "execve" (Linux).

Le moyen le plus simple de créer ta chaîne, c'est à l'aide d'un "sprintf". Je t'invite à regarder la documentation sur le net.

PS: Plutôt qu'un "cd E:\\chemin + start prog.exe", fais directement un "start E:\\chemin\\prog.exe"

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
Rejoignez-nous