如何通过不读取文本文件来修复功能(用于验证输入)?

时间:2019-06-05 06:29:38

标签: c clion

每当我输入文本文件供程序读取时,我总是收到消息:

Unable to open file: big_file.txt
Ending program.

我不确定程序的哪个部分无法正常工作。我假设它是main()或validate_input()函数中的东西:

FILE* validate_input(int argc, char* argv[]){

    FILE* fp = NULL;

    if(argc < 2){
        printf("Not enough arguments entered.\nEnding program.\n");
        exit(0);
    }
    else if(argc > 2){
        printf("Too many arguments entered.\nEnding program.\n");
        exit(0);
    }

    fp = fopen(argv[1], "r");

    if(fp == NULL){
        printf("Unable to open file: %s\nEnding program.\n", argv[1]);
        exit(0);
    }

    return fp;

}


int main(int argc, char* argv[]){
    char** lines = NULL;
    int num_lines = 0;
    FILE* fp = validate_input(argc, argv);

    read_lines(fp, &lines, &num_lines);
    print_lines(lines, num_lines);
    free_lines(lines, num_lines);
    fclose(fp);

    return 0;
}

我希望程序输出给定文本的每一行,并在每行的前面加上一个数字,但是每次输入文件时,它声称它无法读取。

更新: 当我添加fprintf(stderr, "Unable to open file %s: %s\n", argv[1], strerror(errno));

我的输出是:

Unable to open file big_file.txt: No such file or directory

但是文件在我的桌面上。

不确定这是否是文件的正确位置,但这里是: enter image description here

0 个答案:

没有答案