begin process at 2012 05 29 16:46:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Divers

 > 

prob d'ouverture de fichier


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

prob d'ouverture de fichier

jeudi 24 mars 2011 à 17:52:36 | prob d'ouverture de fichier

marooh

bonjour,
j'essais d'écrire un programme qui permet de faire un traitement de texte en utilisant les listes chainées doubles.le code compile bien et tout mais le premier probleme ue je rencontre c'est que le prog ne veut pas ouvrir le fichier que j'indique et affiche à chaque fois "fichier inexistant" or il existe et le plus bizarre dans tout ça c'est que j'utilise tjrs cette fonction et elle fonctionne
voici mon code, et s'il y a d'autres erreurs,me corriger svp,l'utilitaire permet d'afficher à partir de la ligne n1 un nbre n2 de lignes.voila!


Code C/C++ :
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

struct dllist {
 char *s;
 struct dllist *next;
 struct dllist *prev;
};

struct dllist *head, *tail;

void append_node(struct dllist *lnode);
void insert_node(struct dllist *lnode, struct dllist *after);
void remove_node(struct dllist *lnode);
void ouvrir(char*mot, FILE **fp);
void utilitaire1(char *argv[],struct dllist *lnode,int pos,int nbr);

int main(int argc, char **argv) {
 struct dllist *lnode;
FILE *fp;char f[100];
int pos,nbr;
 if(3>argc)
{printf("utilisation incorrecte!!!");exit(0);}
ouvrir(argv[1],&fp);
sscanf(argv[3],"%d",&pos);
sscanf(argv[4],"%d",&nbr);
 /* add some numbers to the double linked list */
 while(fgets(f,100,fp)) {
  lnode = (struct dllist *)malloc(sizeof(struct dllist));
  strncpy(lnode->s,f,strlen(f));
  append_node(lnode);
 }
fclose(fp);
 /* print the dll list */
 for(lnode = head; lnode != NULL; lnode = lnode->next) {
  printf("%s\n", lnode->s);
 }
if (strcmp(argv[2],"view")==0) utilitaire1(argv,lnode,pos,nbr);
 /* destroy the dll list */
 while(head != NULL)
  remove_node(head);

 getchar();
return EXIT_SUCCESS;
}

void append_node(struct dllist *lnode) {
 if(head == NULL) {
  head = lnode;
  lnode->prev = NULL;
 } else {
  tail->next = lnode;
  lnode->prev = tail;
 }

 tail = lnode;
 lnode->next = NULL;
}

void insert_node(struct dllist *lnode, struct dllist *after) {
 lnode->next = after->next;
 lnode->prev = after;

 if(after->next != NULL)
  after->next->prev = lnode;
 else
  tail = lnode;

 after->next = lnode;
}

void remove_node(struct dllist *lnode) {
 if(lnode->prev == NULL)
  head = lnode->next;
 else
  lnode->prev->next = lnode->next;

 if(lnode->next == NULL)
  tail = lnode->prev;
 else
  lnode->next->prev = lnode->prev;
}

void utilitaire1(char *argv[],struct dllist *lnode,int pos,int nbr)
{int i,j;
   struct dllist  *courant ;
  for (i = 1; i < pos; ++i)
    courant = courant->next;
    if (pos == i)
    {
        for (j=i;j<nbr;++j)
    printf("%s\n",courant->s); }
}
void ouvrir(char*mot, FILE **fp)
{
if(!(*fp=fopen(mot,"r")))
{
printf("le fichier est inexistant");
exit(0);
}
else printf("ouverture du fichier... \n");
}

vendredi 25 mars 2011 à 13:56:49 | Re : prob d'ouverture de fichier

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

"if(!(*fp=fopen(mot,"r")))" n'indique pas que le fichier est inexistant mais que la fonction est en echec. Suivant le système que tu utilises, tu peux obtenir le type d'erreur exact.

A mon avis, c'est un fichier crée en root que tu tentes d'ouvrir avec un compte user.


@++
vendredi 25 mars 2011 à 16:04:07 | Re : prob d'ouverture de fichier

marooh

le fichier que je tente d'ouvrir se trouve dans le meme dossier que l'executable donk je ne vois pas pourquoi ça bloque et le ce qui est bizarre c'est que elle a fonctionné au paravant


Cette discussion est classée dans : next, struct, prev, lnode, dllist


Répondre à ce message

Sujets en rapport avec ce message

Probleme de reception dans un serveur visual C++ pour windows [ par alfred ] Salut a tous!!g un probleme dans mon serveur le recv renvoie la valeur -1 et je ne vois pas pouquoi.voici les source du client et du serveurLe Serveur fichier.h [ par bidules ] Bonjour,j'aimerais savoir s'il est possible de mettre des structures dans un fichier d'entete.Car j'ai fais l'essai mais lors de la compilation pour c Lecture/Ecriture/Modification d'une structure dans un fichier [ par paniX ] Bonjour. Alors voici mon probleme:j'ai créé une structure client qui a cette forme :struct client{ int id; char nom[30]; char prenom[30]; char adresse Interface visualC++ avec Next & Previous [ par coyote19 ] salut je voudrais savoir comment realiser une interface du style a plusieurs etapes avec boutons Next et Previous au lieu d'une interface classique.Pe struct constante [ par zarkin ] Bonjour,Je suis ss Dev-C++.Peut-on définir une structure constante en l'initialisant à partir d'une autre structure constante ?ex:const type1 MaConsta problème de pointeur et d'objet pointé [ par leptit ] Bonjour, Je vous présente le problème en C:struct assoc { int l, *n ; }*n est un pointeur vers une alloc dynamique de memoirestyle tableau d'entier.Je struct [ par ready4 ] Je ne sais pas comment initialiser mes moteurs //intialisation moteursM1 = {2, 1, 1, 2, 0, 0, 120};M2 = {8, 4, 4, 8, 0, 0, 80};M3 = {32, 16, 16, 32, 0 Passer un tableau en parametre d'une fonction [ par julien20vt ] Voila mon probleme:J'ai déclaré une structure Nom_Struct, j'initialise un tableau de Nom_Struct :Nom_Struct maStruct[1000] Ensuite j'ai la fonction s PING sous protocole TCP [ par ivdz ] Bonjour, J'ai besoin de votre aide. Je travaille sous C++ Builder 6. Je dois envoyer un message ICMP de Type Echo Request puis récupérer le message Espace mémoire occupé par une structure [ par HCJarod ] Salut,j'ai un vague souvenir concernant les structures en C (struct) qui n'occupe pas la même place mémoire en fonction du sens de la déclaration. Ca


Nos sponsors


Sondage...

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,312 sec (4)

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