2009-07-05 27 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)...

相关问题