begin process at 2012 05 29 17:06:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

problème existentiel de fichier


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

problème existentiel de fichier

mercredi 12 décembre 2007 à 10:26:44 | problème existentiel de fichier

Gotscha

Bonjour,

J'ai regardé sur le forum : il y a beaucoup de demande pour connaître si un fichier existe. Je travaille en C et j'aimerai savoir si mon fichier (autrement dit son nom qui se situe dans la variable fichierChoisi) existe ou non.
J'ai essayé ceci :

char* fichierChoisi;
  printf("?> Quel Fichier ?\n");
  scanf("%s",&fichierChoisi);
  // On test si le fichier choisi existe
  FILE* testFile = fopen(fichierChoisi, "r");
  while (testFile == NULL){
    // le fichier n'existe donc pas
    printf("?> Quel Fichier ?\n");
    scanf("%s",&fichierChoisi);
    testFile = fopen(fichierChoisi, "r");
  }


mais ça ne fonctionne pas car lorsque je choisi le fichier jojo.txt, la boucle se lance alors que le fichier existe vraiment !

Merci de votre aide, car j'ai l'impression de butter contre une érreur un peu stupide... et ça dure depuis trop longtemps.
mercredi 12 décembre 2007 à 10:33:52 | Re : problème existentiel de fichier

BruNews

Administrateur CodeS-SourceS
Quand on travaille en C on ne déclare pas ses variables nimporte où dans le code mais au début.

Pour la Xeme fois, un fichier peut exister et ne pas pouvoir être ouvert s'il l'a déjà été en mode exclusif.

ciao...
BruNews, MVP VC++
mercredi 12 décembre 2007 à 16:09:54 | Re : problème existentiel de fichier

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Bon alors en plus des remarques précédentes...

1 Un while n'est pas ce qu'il y a de mieux ici. On voit bien le code redondant (printf, scanf, fopen...). Un do ... while est plus approprié.

2 fichierChoisi est un pointeur sur des caractères. Tu passes son adresse en argument au scanf... Bilan scanf écrit bien tranquillement à l'emplacement de ton pointeur... Alors après il y a peut être des compilo qui acceptent ce genre de truc, mais il me semble qu'il faut préciser %as, et pas %s. Mais peut être que je me trompe. Par contre, il y a une syntaxe plus courante : préciser la taille du buffer. Suffit de la mettre en le % et le s.

#include "stdio.h"

int main(int argc, char ** argv)
{
  FILE* testFile;
  char fichierChoisi[100];

  do {
    printf("?> Quel fichier ?\n");
    scanf("%100s", fichierChoisi);
    testFile = fopen(fichierChoisi, "r");
  } while (!testFile);
 
  fclose(testFile);
  return 0;
}


3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08


Cette discussion est classée dans : fichier, problème, existe, testfile, fichierchoisi


Répondre à ce message

Sujets en rapport avec ce message

Pb de compilation [ par Cyberboy2054 ] Salut J' ai un piti problème de compilation en C++Quand j' ai terminé mon programme (un aplication console)je teste mon programme depuis le compilateu Problème avec CListBox [ par amel ] Bonjour a tous,Je suis en train de creer une application sous Visual C avec les MFC. J'utilise une CListBox dans laquelle j'affiche une liste d'elemen aide sur les fichiers [ par dickymoe ] VinceExiste-t-il une fonction permettant de savoir si un fichier existe ?et une autre permettant de savoir si un fichier est vide ?merci L'équivalence de common en C [ par khalidlyon ] Bonjour, Enfaite, j'ai un variable qui prend 1 si le fichier existe et 0 si non, le probleme que l'application commence par un fichier qui n existe pa problème avec fichiers !!! [ par ben01n ] salut tout le mondeje prog sous linux et j'aurais besoin d'aide pour un de mes programmes dont j'ai déposé la source sous le nom "client-serveur en ud Problème envoi de fichier via socket sous Borland C++ Pro 6 [ par marsupile ] Bonjour,je recherche despérement un tuto bien fait ou un exemple de code pourutiliser les sockets afin de transférer un fichier entre 2 stations.merci Problème : Récupération des données d'un Buffer pour mettre dans une EditBox [ par Memerosti ] BonjourMon problème est le suivant : J'ai ouvert un fichier, lu ses données, et jusque là ça va. Mais ensuite je voudrais récupérer ces données, pour Transfert d'un ftp (2) [ par header ] Voila le problème :J'ai ouvert un fichier sur un ftp et je me prépare à lire quelques bytes de celui ci. Pourquoi ca marche trés bien avec un fichier La valeur 26=0x1A pose un problème de lecture de fichier [ par sengr ] Salut!Jsuis en stage et jsuis pas un AS du dévelopement et ca URGE!J'ai rencontré un BIG problème : le coup du de la valeur 26=0x1A avec les fonctions Comment se positionner sur une ligne dans un ifstream? [ par mcrogiez ] Bonjour à tous,Mon problème est très simple, cependant, je n'arrive pas à le résoudre.En C++, j'utilise des objets de type ofstream et ifstream afin d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 0,437 sec (3)

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