2009-07-05 32 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 2009-07-05 23:03:59

回答

3

你打開readme.txt文件獲得寫作:

fopen_s(&fptr2, filename, "w") 

但隨後將它傳遞給CharReadWrite

CharReadWrite(fptr2); 

它試圖從中讀取數據:

c=fgetc(fin) 

你的意思是打開它來閱讀,通過"r"fopen_s

如果打開ReadMe.txt失敗,您也繼續並調用CharReadWrite

1

一個問題是,即使您未能打開它,您也正在嘗試從(然後關閉)fptr2中讀取數據。

嘗試:

#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)...

相關問題