2009-07-05 9 views
0
#include "stdafx.h" 
#include "string.h" 
#include "stdio.h" 
void CharReadWrite(FILE *fin); 
FILE *fptr2; 

int _tmain(int argc, _TCHAR* argv[]) 
{ 

    char filename[]="ReadMe.txt"; 
    if (fopen_s(&fptr2, filename, "r") != 0) 
     printf("File stream %s was not opened\n", filename); 
    else 
     printf("The file %s was opened\n", filename); 
    CharReadWrite(fptr2); 
    fclose(fptr2); 
    return 0; 
    } 
void CharReadWrite(FILE *fin){ 
    int c; 
    while ((c=fgetc(fin)) !=EOF) { 
     putchar(c);} 
} 
+2

Was ist Ihre Frage? Welchen Fehler bekommst du? – CookieOfFortune

+1

(c = fgetc (fin)! = EOF) hat eine Klammer falsch platziert. Sollte sein (c = fgetc (fin))! = EOF. – Stephan202

Antwort

3

Sie öffnen ReadMe.txt zum Schreiben:

fopen_s(&fptr2, filename, "w") 

aber dann ist es zu CharReadWrite vorbei:

CharReadWrite(fptr2); 

die von ihm zu lesen versucht:

c=fgetc(fin) 

Wollten Sie es zum Lesen öffnen, indem Sie "r" anübergeben?

Sie fahren auch fort und rufen CharReadWrite auf, wenn das Öffnen von ReadMe.txt fehlschlägt.

1

Ein Problem ist, dass Sie versuchen, zu lesen (und dann schließen) fptr2, auch wenn Sie es nicht öffnen konnten.

Versuchen:

#include "stdafx.h" 
#include "string.h" 
#include "stdio.h" 
void CharReadWrite(FILE *fin); 
FILE *fptr2; 

int _tmain(int argc, _TCHAR* argv[]) 
{ 

    char filename[]="ReadMe.txt"; 
    if (fopen_s(&fptr2, filename, "w") != 0) 
    { 
     printf("File stream %s was not opened\n", filename); 
    } 
    else 
    { 
     printf("The file %s was opened\n", filename); 
     CharReadWrite(fptr2); 
     fclose(fptr2); 
    } 
    return 0; 
} 
0

Sie öffnen Datei zum Schreiben und versuchen, daraus zu lesen (fgetc) ...

Verwandte Themen