Ouvrir un fichier en C, avec variable
Résolu/Fermé
A voir également:
- Ouvrir un fichier en C, avec variable
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier 7z - Guide
4 réponses
Salut
L'idéal pour programmer est quand même d'avoir sous le coude le manuel de référence du langage utilisé ! Par exemple, je n'imagine pas mon apprentissage du php sans une (voire plusieurs) page(s) sur https://www.php.net/manual/en/index.php
Si tu lisais ce manuel, tu verrais que la syntaxe de ta fonction system est int system(const char *command);
ce qui veut dire que la fonction system renvoie un entier que l'on se doit d'analyser pour détecter une éventuelle erreur et que cette fonction attend une chaine de caractères qu'elle ne modifiera pas.
Donc, le paramètre que tu donnes à cette fonction doit être soit une constante, soit une constante littérale, soit une variable initialisée, soit une variable contenant le résultat d'un calcul (très probablement d'une concaténation) soit une expression compliquée comme tu le souhaites. En un mot, tu es libre de lui donner ce que tu veux. Je t'invite donc à laisser libre cours à ton imagination (et à ton intelligence bien évidemment) et à tester tout ce que tu imagineras
L'idéal pour programmer est quand même d'avoir sous le coude le manuel de référence du langage utilisé ! Par exemple, je n'imagine pas mon apprentissage du php sans une (voire plusieurs) page(s) sur https://www.php.net/manual/en/index.php
Si tu lisais ce manuel, tu verrais que la syntaxe de ta fonction system est int system(const char *command);
ce qui veut dire que la fonction system renvoie un entier que l'on se doit d'analyser pour détecter une éventuelle erreur et que cette fonction attend une chaine de caractères qu'elle ne modifiera pas.
Donc, le paramètre que tu donnes à cette fonction doit être soit une constante, soit une constante littérale, soit une variable initialisée, soit une variable contenant le résultat d'un calcul (très probablement d'une concaténation) soit une expression compliquée comme tu le souhaites. En un mot, tu es libre de lui donner ce que tu veux. Je t'invite donc à laisser libre cours à ton imagination (et à ton intelligence bien évidemment) et à tester tout ce que tu imagineras
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
6 janv. 2010 à 04:43
6 janv. 2010 à 04:43
Salut,
Prends un tableau char, mettons de taille 128:
Sachant que tu as:
Et:
Alors vérifie la longueur des deux pour ne pas dépasser la taille du buffer, puis utilise sprintf()
qui se comporte comme printf, sauf qu'au lieu d'afficher à l'écran, il va écrire dans une variable:
Prends un tableau char, mettons de taille 128:
char cmd[128];
Sachant que tu as:
char *prog = "start ";
Et:
char *doc = "prout.doc"
Alors vérifie la longueur des deux pour ne pas dépasser la taille du buffer, puis utilise sprintf()
qui se comporte comme printf, sauf qu'au lieu d'afficher à l'écran, il va écrire dans une variable:
int len = strlen(prog) + strlen(cmd) + 1; // +1 pour le caractère fin de chaine if (len <= sizeof(cmd)) { sprintf(cmd, "%s%s", prog, doc); system(cmd); }
Merci d'avoir porté attention à ma demande, cependant, tu ne répond absolument pas à ma requête, je demande la syntaxe, j'ai étudier la fonction système, cependant, je le répète, ce n'est qu'une histoire de syntaxe, je n'arrive pas à trouver la bonne manière de l'écrire avec une variable (ce qui est sans doute dû à mon intelligence inférieure), j'aimerais qu'on m'aide avec un exemple, pour que je puisse l'appliquer ensuite.
Cordialement
Cordialement