begin process at 2012 05 30 01:45:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

System

 > 

probleme arguments


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

probleme arguments

mercredi 2 avril 2008 à 17:06:49 | probleme arguments

romainbisson

Bonjour, je souhaite que mon programme prenne en argument la premier valeur,

int main(int argc, char* argv){
    char nf
    nf = argv[0];

    FILE * f;
   
    f = fopen(nf,"r");
    if (f) break;
    printf("\n *** ERREUR A L'OUVERTURE DU FICHIER ***\n");
    }
    system("CLS");

mais sa ne marche pas

pour lancer mon programme, je souhaite faire C:\\ main.exe test.txt

et le programme prend en argument le test.txt et ouvre ce fichier

merci de m'aider

mercredi 2 avril 2008 à 17:12:59 | Re : probleme arguments

jfrancois

Bonjour,

argv[0] est le nom du programme lui-même !
Le premier paramètre passé est en argv[1].

Jean-François

mercredi 2 avril 2008 à 17:23:10 | Re : probleme arguments

SAKingdom

Membre Club
Pas étonnant que ca ne fonctionne pas. Si ton code est réellement ce que tu as posté plus haut, il n'y a aucune chance que ça compile.

int main (int argc, char *argv) // argv est un pointeur de pointeurs (char **).

char nf;
nf = argv[0]; // argv[0] (ou 1 ici)  est par conséquence un pointeur et non un caractère.

if(f) break; // ??? break de quoi et en plus, fopen retourne 0 quand il y a une erreur.

system("cls"); // il est en dehors du main !!!!

C++ (@++)

mercredi 2 avril 2008 à 17:33:22 | Re : probleme arguments

romainbisson

je souhaite juste recuperer le nom du fichier dans la variable nf

char nf[MAX_PATH];

je lance mon programme :

main.exe test.txt      , test est un argument

ici, le fichier s'appelle test.txt et je veux que nf soit egale a test.txt

pour pouvoir faire

FILE *f;
f = fopen(nf,"r");

et si je fais :

int main(int argc, char* argv)
char nf[MAX_PATH];
nf = argv[1];

il me dit que : incompatible types in assignment of `char' to `char[260]'

et en faisant

char nf;

f = fopen(nf,"r"); --> il y a une erreur ici

l'erreur is :  invalid conversion from `char' to `const char*'


Merci de m'aider
mercredi 2 avril 2008 à 17:35:04 | Re : probleme arguments

SAKingdom

Membre Club
NON

nf doit est un POINTEUR PAS UN TABLEAU

Ensuite, argv est un POINTEUR DE POINTEURS (char **)

C++ (@++)

mercredi 2 avril 2008 à 17:37:28 | Re : probleme arguments

SAKingdom

Membre Club
"nf doit est un POINTEUR PAS UN TABLEAU"

nf doit être un POINTEUR PAS UN TABLEAU

Oups

C++ (@++)

mercredi 2 avril 2008 à 17:43:49 | Re : probleme arguments

jfrancois

f = fopen(argv[1],"r"); directement ! (après avoir testé son existance bien sûr)

Jean-François

mercredi 2 avril 2008 à 18:02:15 | Re : probleme arguments

romainbisson

ok, merci c'est sympa
mercredi 2 avril 2008 à 18:10:14 | Re : probleme arguments

jfrancois

Et si il y a un quelconque traitement à faire sur ce nom de fichier avant d'ouvrir le fichier, il faut passer par une chaîne de caractères :

char nom_fichier[MAX_PATH];
strcpy(nom_fichier,argv[1]); // si argc > 1
... modif de nom_fichier, ex: strcat(nom_fichier,".txt");
f = fopen(nom_fichier,"r");
...

Jean-François



Cette discussion est classée dans : programme, probleme, souhaite, arguments, nf


Répondre à ce message

Sujets en rapport avec ce message

Probleme urgent !! [ par julnad ] Mon problème est que j'ai réalisé un programme en C et qu'il faut le traduire en C++. L'important est qu'il faut le faire rapidement et le C++ c'est p Probleme sur un programme qui calcule un pgcd [ par El loco ] Voila j ai un probleme sur le programme suivant, il marche correctement avec une grande serie de nombres mais quand je tape 15 et 32 il me donne un pg allocation dynamique [ par hobbes ] Bonjour,Mon probleme est que je ne connais pas a l avance la taille du tableau que je souhaite cree. Je pensais alors :creer un tab de maniere dynamiq Récupération des arguments en VC++ [ par thomychat ] Je vous fais le cas concrêt, c'est plus parlant.L'utilisateur sélectionne des fichiers dans un répertoire.Il fait un clic droit de la souris et choisi probleme bizarre [ par tcok ] salut a tous,voila je poste un message sur ce forum parce que je confronter a un probleme extrement bizarre qui depasse mes connaissance.g fait un pet Comment recup l'instance du programme... [ par neodelphi ] Salut tout le monde ! Ayant déja trouvé de l'aide sur ce forum j'y refait un tour ( je commence a y prendre gout lol ).Bon voila mon probleme : j'ai c probleme pour deposer un programme [ par nolius ] j'ai programmer un quakelike que je voudrais ajouter sur ce site. a cahque fois que j'essaye de l'ajouter je tombe sur une page d'erreur.est ce que c' Probleme avec le programme de resolution systemes [ par ldespi ] Bonjour,je suis vraiment trés interessé par le programme developpé par White_angel 73 au sujet de la résolution d'un systeme d'equation par les method Probleme en C :/ [ par ChrisFactor ] Voila je fait une formation par le biais de l'etat, et dans ce qu'ils m'apprenne beaucoup de probleme se pose, j'ai comme programme Microsoft C++ et D SVP aidez moi à finir ce programme [ par morgandetoi06 ] #include "windows.h"#include int main(){HWND hparent;HWND hfille;hparent=FindWindow("IMWindowClass",NULL);hfille=GetDlgItem(hparent,1);UN:HWND GetNext


Nos sponsors


Sondage...

Comparez les prix

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 : 6,162 sec (4)

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