Ciao a tutti,
qui di seguito il codice da me fatto per leggere un file di testo, composto da piu' righe (il numero delle righe non e' mai fisso) e da 11 colonne.
Con questo codice voglio leggere ciascuna riga del file, estrarne solo determinate colonne e stamparle a video.
Il mio problema e' questo. Nella riga indicata in rosso, ho indicato "cat argv[1]" ma quando eseguo la mia procedura, ricevo il messaggio d'errore mostrato nel titolo. Dove sto sbagliando?
Grazie a tutti
codice:#include<stdlib.h> #include<stdio.h> main(int argc , char *argv[]){ FILE *filemch; char buf[200]; char *res; char comando[500]; char val1[200]; if(argc!=2) { printf("Syntax: procedura file_name.mch\n"); exit(1); } /* veifica che il file sia presente nel direttorio */ sprintf(comando,"test -f %s",argv[1]); if(system(comando)!=0) { printf("The file %s does not exist\n",argv[1]); exit(1); } /* apre il file */ filemch=popen("cat argv[1] | awk ' { print $2,$3,$4,$7,$9} '", "r") if( filemch==NULL ) { perror("Errore in apertura del file"); exit(1); } /* legge e stampa ogni riga */ while(1) { res=fgets(buf, 200, filemch); if( res==NULL ) break; printf("%s", buf); } /* chiude il file */ fclose(filemch); return 0; }

Rispondi quotando
