begin process at 2012 05 30 17:42:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

SOS manque d'inspiration


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

SOS manque d'inspiration

jeudi 21 octobre 2004 à 16:59:41 | SOS manque d'inspiration

graall

J'ai besoin de faire un petit programme (en mode console) qui demande à l'utilisateur de saisir le nom d'un fichier et ensuite, qui vérifie si ce fichier existe.
Je ne vois pas du tout comment faire.
J'ai essayé de m'aider de cette source : http://www.cppfrance.com/code.aspx?ID=9263 mais je n'arrive pas à manipuler les const char.

Voici un exemple des essais que j'ai fais :


#include <conio.c>

bool fileexists(char file[100])
{
/* c'est ici que je ne sais pas quoi mettre */
}

int main()
{
printf("Tapez le nom d'un fichier.\n");
char fichier[100];
scanf("%s",&fichier);
if (fileexists(fichier))
printf("\nLe fichier existe.");
else
printf("\nLe fichier n'existe pas.");
getch();
}


merci d'avance
jeudi 21 octobre 2004 à 17:24:40 | Re : SOS manque d'inspiration

asmanur

essaie
FILE* f= fopen(fichier,"rb");
if(!f)return false;
else return true;
jeudi 21 octobre 2004 à 18:54:35 | Re : SOS manque d'inspiration

djl

asmanur > l'inexistance d'un fichier n'est pas le seul cas ou son ouverture est impossible (par ex si il est ouvert en mode exclusif par un autre processus)

faudra passer par un appel systeme, sous windows win32, de mainiere portable voir chez POSIX
jeudi 21 octobre 2004 à 20:43:05 | Re : SOS manque d'inspiration

DeAtHCrAsH

Une maniere simple de procédé, consiste a prendre le chemin complet et a utiliser l'API FindFirstFile() puis regarder le résultat.

Shell
vendredi 22 octobre 2004 à 07:41:37 | Re : SOS manque d'inspiration

asmanur

Ouep Je sais mais c quand même plus simpe que d'utiliser win surtout si on es encore sous dos
samedi 23 octobre 2004 à 15:47:54 | Re : SOS manque d'inspiration

plus_plus_fab

FILE* f= fopen(fichier,"rb");
if(!f)return false;
else return true;

Si le fichier n'existe pas, il est crée, donc ça ne teste pas s'il existait déjà.
La seule manière de faire, c'est de s'adresser au systeme de fichier.

sur systemes UNIX (qui se conforme donc au standard POSIX), on peut faire qqchose comme ca : (en C, non testé)

#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>

void main(int argc,char** argv)
{
struct stat stfile;
if(stat( argv[1], &stfile) == -1)
{
fprintf(stderr,"acces refusé à %s", argv[1])
}
if( (stfile.st_mode & S_IFMT) == S_IFREG) /* test pour un fichier régulier */
{
printf("le fichier regulier %s existe",argv[1]);
}
}

je pense que errno doit etre positionné, on doit pouvoir afficher un diagnostic complementaire avec perror.
samedi 23 octobre 2004 à 15:48:18 | Re : SOS manque d'inspiration

plus_plus_fab

FILE* f= fopen(fichier,"rb");
if(!f)return false;
else return true;

Si le fichier n'existe pas, il est crée, donc ça ne teste pas s'il existait déjà.
La seule manière de faire, c'est de s'adresser au systeme de fichier.

sur systemes UNIX (qui se conforme donc au standard POSIX), on peut faire qqchose comme ca : (en C, non testé)

#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>

void main(int argc,char** argv)
{
struct stat stfile;
if(stat( argv[1], &stfile) == -1)
{
fprintf(stderr,"acces refusé à %s", argv[1])
}
if( (stfile.st_mode & S_IFMT) == S_IFREG) /* test pour un fichier régulier */
{
printf("le fichier regulier %s existe",argv[1]);
}
}

je pense que errno doit etre positionné, on doit pouvoir afficher un diagnostic complementaire avec perror.


Cette discussion est classée dans : fichier, code, printf, existe, char


Répondre à ce message

Sujets en rapport avec ce message

Debutant : ecrire et lire un fichier txt [ par manu ] Bonjour a tous.Je debute, aussi desole.... :)Je cherche donc a ecrire dans un fichier txt, puis a lire ce fichier ligne a ligne, faire un split / expl Petit probleme de code en C sur Linux !! [ par UncleShu ] Je voudrais créer un fichier dans le réperoire personnel d'un utilisateur mais mon code ne marche pas !!#include #include #include #define DIR $HOM [debutant]attribution dun mot a une char et comparaison ... [ par DarkEbola ] en fait, jaurais aimé attribuer du texte a une charkke chose comme 500 ou 600 caracteres maximais jarrive pas a lui attribuer plus de 1 Charsuis-je pl Erreurs de compilations bizarres avec Visual C++ 6 [ par VTS_35 ] Bonjour,G encore des problèmes de compilation avec mon programme. Je me suis rendu compte que le programme allait devenir balaise, alors j'ai décidé d Je cherche l'erreur [ par ScorpionTiti ] J'ai effectué un programme qui me permette d'écrire dans un fichier et je l'ai compilé. En le lançant, il m'envoie un message d'erreur mais je ne sais CRYPTAGE !!! [ par megaman ] Voilà j'essai de faire un log de cryptage à l'aide de fonctions et procédure.Les fonctions et procédures :Une fonction qui retourne le nom de fichieru probleme de if [ par cobra176 ] bonjour tout le monde j'ai un code qui me permet d'afficher les lignes dans un fichier contenat les mots que j'ai choisit et si il n'y a pas le mot re Problème de lecture fichier [ par nach73 ] J'ai un enorme probleme je n'arrive pas a lire dans mon fichierVoila la partie de mon programme.Si quelqu'un peux m'aide.Merci.//ouverture du fichier Aide pour enregistrement fichier en C [ par petit_mateo ] Voici mon code :#include #include #include int x(){   char ANCIEN[] = "resta.txt";   char NOUVEAU[] = "restb.txt";   FILE *INFILE, *OUTFILE;< Copier/coller de données contenue dans un fichier en C [ par petit_mateo ] Voici mon code :#include #include #include int x(){   char ANCIEN[] = "resta.txt";   char NOUVEAU[] = "restb.txt";   FILE *INFILE, *OUTFILE;<


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 : 1,076 sec (3)

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