Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    81

    [C] Problema con lettura caratteri file

    Ciao a tutti, ho scritto il seguente frammento di programma che tra le varie cose deve leggere i primi 10 caratteri del file testo.txt, ma quando effettua la chiamata a fgets restituisce un puntatore a null segno che non viene letto alcun carattere, avete qualche suggerimento su quale sia il problema ? Vi posto il codice, Grazie

    codice:
    #include <unistd.h>
    #include <stdio.h>
    #include <dirent.h>
    #include <sys/types.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
    	char *ptr;
    	char *prova;
    	DIR *dp;
    	struct dirent *dirp;
    	struct dirent1 *dirp1;
    	int size;
    	char directory[526];
    	char *stringa;
    	char *nomefile=(char *)malloc(1000*sizeof(char));;
    	char nomefile1[526]="/testo.txt";
    
    	while(strcmp(directory,"/")!=0){
    	
    	getcwd(directory, sizeof(directory));
    	printf("%s\n", directory);	
    	ptr = chdir("..");
    		
    		if ( (dp = opendir(directory)) == NULL){
    		printf("can't open %s", argv[1]);
    		exit(-1);
    		}
    		while ( (dirp = readdir(dp)) != NULL){
    			if(strcmp(dirp->d_name,"testo.txt")==0){
    				printf("File trovato\n");
    				printf("File %s\n", dirp->d_name);
    				nomefile=strcat(directory,nomefile1);				
    				FILE *prova;
                           		prova=fopen(nomefile,"r");	
    				if (prova==NULL){
    					printf("non posso aprire il file");
    					exit(1);
    					}
    				
    				stringa=(char *)malloc(100*sizeof(char));
    				char *st = (char *)malloc(100*sizeof(char));
    				st=fgets(stringa,10,prova);	
    				printf("%s\n",stringa);
          				exit(0);
    			}
    		
    		
    		
    		}
    	
    	}
    printf("File non trovato\n");
    }

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [C] Problema con lettura caratteri file

    Intanto togli questa riga e modifica così:
    codice:
    //    char *st = (char *)malloc(100*sizeof(char));
        fgets(stringa,10,prova); // fgets restituisce stringa in caso di successo. 
    
        if (ferror(prova)) 
            perror();
        else 	
            printf("%s\n",stringa);
    http://www.cplusplus.com/reference/c...cstdio/perror/
    http://www.cplusplus.com/reference/c...cstdio/ferror/
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.