2009-07-05 5 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

Quelle est votre question? Quelle erreur obtenez-vous? – CookieOfFortune

+1

(c = fgetc (fin)! = EOF) a une parenthèse égarée. Devrait être (c = fgetc (fin))! = EOF. – Stephan202

Répondre

3

vous ouvrez ReadMe.txt pour l'écriture:

fopen_s(&fptr2, filename, "w") 

mais passant à CharReadWrite:

CharReadWrite(fptr2); 

qui tente de lire ce:

c=fgetc(fin) 

Vouliez-vous l'ouvrir pour la lecture, en passant "r" à fopen_s?

Vous continuez également et appelez CharReadWrite si l'ouverture ReadMe.txt échoue.

1

Un problème est que vous essayez de lire (et ensuite de fermer) fptr2 même si vous ne parvenez pas à l'ouvrir.

Essayez:

#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

Vous ouvrez un fichier pour l'écrire et essayer de le lire (fgetc) ...

Questions connexes