简体   繁体   English

不知道为什么文件打不开

[英]I don't know why the file won't open

This is my code这是我的代码

#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 ! : %s\n",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;
}

This is the error code:这是错误代码:

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

Your wrongly test the fopen return value:您错误地测试了 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;
}

The problem ist most likely here:问题很可能在这里:

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 ! : %s\n",fileNm);
        return FALSE;
    }    
    ...

You want this:你要这个:

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;
    }    
    ...

However in the fnWritePPM function you did it right.但是在fnWritePPM函数中,您做得对。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM