|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
[C] New line
Dovrei fare un programmino che prende in input un file con dei commenti e restituisce in output (su console o su un altro file) lo stesso file senza i commenti. I commenti iniziano con il carattere '%' e terminano a fine riga. Io ho scritto questo:
Codice:
#include <stdio.h> int main(int argc, char *argv[]){ if(argc==1 || argc>3){ printf("Lanciare il programma con i soli file di input e (facoltativo) di output come argomento\n"); return 1; } FILE *fr=fopen(argv[1],"r"); if(!fr){ printf("Errore nell'apertura di %s\n",argv[1]); return 1; } FILE *fw=stdout; if(argc==3){ fw=fopen(argv[2],"w"); if(!fw){ printf("Errore nell'apertura/creazione di %s\n",argv[2]); return 1; } } char c; c=fgetc(fr); while(!feof(fr)){ while(!feof(fr) && c!='%'){ if(!c==fputc(c,fw)){ printf("Errore nella scrittura in %s\n",argv[2]); return 1; } c=fgetc(fr); } while(!feof(fr) && c!='\n'){ c=fgetc(fr); } } fclose(fr); fclose(fw); printf("\nCompletato!\n"); return 0; } Grazie |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
Generalmente nei sistemi UNIX il newline viene tradotto in un LF, nei Mac con un CR ed in Windows con un CR LF. Ad ogni modo '\n' funziona correttamente in tutti i sistemi.
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Grazie, è proprio quello che volevo sapere
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:30.