2017-05-23 3 views
1

Schauen Sie diesen CodeWie öffne ich eine Datei zum Lesen und andere zum Schreiben in C?

void readAndWrite() { 
    char url[]="data.txt"; 
    char url2[]="output.txt"; 
    char data[256]; 
    FILE *arq; 
    FILE *arqw; 

    arq = fopen(url, "r"); 
    arqw = fopen(url2, "w"); 
    if(arq == NULL) { 
     printf("Erro, nao foi possivel abrir o arquivo\n"); 
    } else { 
     while(fgets(data, 256, arq) != NULL) {   
      fprintf(arqw,"This %s",data); 
     } 
    } 
    fclose(arq); 
    fclose(arqw); 
} 

Es gibt kein Problem, die Dateien zu öffnen. Beide geben NULL nicht ein wenn. Es ist jedoch nicht möglich, die Lesedatei zu lesen.

+0

Testen Sie, dass ARQW nicht NULL ist. Wird der Code erfolgreich ausgeführt, wenn Sie fprintf nach stdout (oder printf) statt in arqw schreiben? –

Antwort

0

Sind Sie sicher, dass "data.txt" erstellt wurde? Wenn es nicht existiert, wird arg immer NULL sein und Sie werden eine Fehler-Datei öffnen. über Modifikatoren lesen https://www.tutorialspoint.com/c_standard_library/c_function_fopen.htm

Sie Fehler lesen können, was Sie von errno printf haben ("errno ist% d und fd% d \ n", errno, ARQ);

char url[] = "data.txt"; 
char url2[] = "output.txt"; 
char data[256]; 
FILE *arq; 
FILE *arqw; 

arq = fopen(url, "r"); 
if (arq == NULL) { 
    printf("Erro, nao foi possivel abrir o arquivo\n"); 
    printf("errno is %d and fd is %d\n", errno, arq); 
} 
else { 
    arqw = fopen(url2, "w"); 
    while ((fgets(data, 256, arq)) != NULL) { 
     fprintf(arqw, "This %s", data); 
    } 
    fclose(arq); 
    fclose(arqw); 
} 
+0

Ja. Diese Datei ist erstellt –

+1

Tutorialspoint ist voller Fehler und ehrlich gesagt eine schreckliche Ressource für das Lernen von C, noch schlimmer als Referenz. Angesichts der Tatsache, dass die Op explizit angibt, dass sie den Fehler nicht erhalten, ist dies bestenfalls ein Kommentar. (Ich versuche nicht zu schreien und ich verstehe, dass du noch keine Kommentare schreiben kannst, aber bitte missbrauche die Antworten nicht als Ergebnis :)) – George

+0

Dein Code sieht gut aus. Müssen Sie absolute Pfade verwenden? Sind die Zeilenumbrüche in data.txt korrekt? – stark

Verwandte Themen