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

Что вы хотите сказать? Какая у вас ошибка? – CookieOfFortune

+1

(c = fgetc (fin)! = EOF) имеет скобки. Должно быть (c = fgetc (fin))! = EOF. – Stephan202

ответ

3

Вы открываете ReadMe.txt для записи:

fopen_s(&fptr2, filename, "w") 

но затем передавая его CharReadWrite:

CharReadWrite(fptr2); 

, который пытается читать из него:

c=fgetc(fin) 

Вы хотели открыть его для чтения, пройдя "r" до fopen_s?

Вы также можете позвонить и позвонить по телефону CharReadWrite, если открытие ReadMe.txt завершается с ошибкой.

1

Одна из проблем заключается в том, что вы пытаетесь прочитать (и затем закрыть) fptr2, даже если вам не удалось открыть его.

Try:

#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

Вы открываете файл для письма и пытаетесь его прочитать (fgetc) ...

Смежные вопросы