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 :

Ouverture de fichier à noms variables C


Sujet :

C

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 4
    Par défaut Ouverture de fichier à noms variables C
    Bonjour,
    Je suis débutante en C et je rencontre un problème que je n'arrive pas a régler donc je me tourne vers vous:
    j'ai plusieurs fichiers que j'aimerais ouvrir en fonction de leur nom.
    GenericRouter_switch_2.mcf
    GenericRouter_switch_1.mcf

    Dans mon programme, j'ai une variable attr_name qui est un char* qui me renvoie "switch_1".
    J'ai donc fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FILE* fichier = NULL;
    std::string PathConf = "home/project/configurations/GenericRouter_" + attr_name +".mcf";
    fichier = fopen(PathConf.c_str(),"r");
    char ligne[TAILLE_MAX] = "";
    while(fgets(ligne,TAILLE_MAX,fichier) != NULL){ ... }
    L'erreur est la suivante:
    invalid operands of types ‘const char [70]’ and ‘char*’ to binary ‘operator+'
    Merci par avance pour vos réponses et votre aide!

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 801
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Déjà la syntaxe std::string est une syntaxe C++. Et Ici c'est le forum C. Or le C ce n'est pas du C++. Donc si tu as une question C++ tu auras avantage à la poser dans la section appropriée. Cela te donnera plus de chances qu'elle soit lue par des intervenants capables d'y répondre.

    Sinon pour ton souci (qu'on pourra retrouver en C), on ne peut pas concaténer des tableaux (des char[]) et des pointeurs (la syntaxe "....." te donne juste un pointeur contenant l'adresse de la chaine "....." stockée en mémoire). Ce pointeur équivaut à la string dans le sens où tu peux la traiter via des opérations classiques (compter sa longueur, copier, afficher) mais pas dans des opérations plus exotiques (utilisation d'un opérateur mathématique en espérant que le compilo comprendra qu'il s'agit d'une concaténation). Ca marcherait dans des langages plus puissants mais pas en C et visiblement pas en C++.

    La solution est
    1. créer un tableau de taille suffisante pour stocker le nom
    2. remplir ce tableau avec le nom


    Ce qui (en C) se traduirait par
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char PathConf[100];
    sprintf(PathConf, "home/project/configurations/GenericRouter_%s.mcf", attr_name);
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    indiquer le langage utilisé (C ou C++) est important car la solution et les principes sont différents.
    En C++, il suffit de transformer le table de char en chaîne. La ligne 2 devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::string PathConf = "home/project/configurations/GenericRouter_" + std::string(attr_name) + ".mcf";

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Alimenter fichier excel avec fichiers à nom variable
    Par miliev83 dans le forum Excel
    Réponses: 4
    Dernier message: 22/04/2016, 17h16
  2. fichiers noms variables
    Par Guignon dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 22/04/2014, 17h02
  3. [XL-2010] Message d'erreur lors de parcours de fichier + nom variable de fichier
    Par toine79 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/06/2013, 08h24
  4. Création d'un fichier à nom variable
    Par junkie1986 dans le forum Interfaces Graphiques
    Réponses: 11
    Dernier message: 05/03/2012, 12h14
  5. [XL-2003] Ouverture de fichier et variable
    Par matse57 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/03/2011, 10h12

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