c语言 - 我不知道为什么文件打不开



这是我的代码

#define _CRT_SECURE_NO_WARNINGS    
#include <stdio.h>    
#include <stdlib.h>
#define TRUE    1
#define FALSE   0
typedef struct {    
int M,N;    
int min,max;    
int width;    
int height;    
unsigned char **pixels;    
}PPMIMG;

int fnReadPPM(char* fileNm,PPMIMG* img);
int main(int argc, char ** argv)
{    
PPMIMG img;        
if(fnReadPPM(argv[1], &img) != FALSE)
{    
return TRUE;    
}
return  0;
}
int fnReadPPM(char* fileNm ,PPMIMG* img)
{    
FILE* fp;    
fp = fopen("/users/ashton/Downloads/test.txt","rb");

if(fileNm == NULL){    
fprintf(stderr,"Unable to File ! : %sn",fileNm);    
return FALSE;    
}

fclose(fp);    
return TRUE;
}
int fnWritePPM(char* fileNm, PPMIMG* img)
{    
FILE *fp =fopen(fileNm, "w");    
if(fp == NULL)
{    
fprintf(stderr, "Failed to create the file.");    
return FALSE;    
}        
return TRUE;
}

这是错误代码:

Unable to File ! : (null)
Program ended with exit code: 0 

您错误地测试fopen返回值:

fp = fopen("/users/ashton/Downloads/test.txt","rb");
if (fp == NULL) {    //<===== Was WRONG, you used fileNm instead of fp
perror("Unable to File");
return FALSE;
}

问题最有可能出现在这里:

int fnReadPPM(char* fileNm ,PPMIMG* img)
{
FILE* fp;
fp = fopen("/users/ashton/Downloads/test.txt","rb"); // you assign fp

if (fileNm == NULL){                                // and here you check for fileNm 
fprintf(stderr,"Unable to File ! : %sn",fileNm);
return FALSE;
}    
...

你想要这个:

int fnReadPPM(char* fileNm ,PPMIMG* img)
{
FILE* fp;
fp = fopen("/users/ashton/Downloads/test.txt","rb");

if (fp == NULL) {
fprintf(stderr,"Unable to open file %s.n", fileNm);
return FALSE;
}    
...

然而,在fnWritePPM函数中,您做得很好。

相关内容

  • 没有找到相关文章

最新更新