无法在 C 中打开文件

Trouble Opening File in C

我对编程(和这个网站)还很陌生,所以感谢您的帮助和耐心等待。我正在编写一个函数来计算文本文件中的行数,但打开文件时总是 returns NULL。我(大部分)确定该文件在我当前的工作目录中,但是当我使用绝对路径时我遇到了同样的问题。我已经查看了很多示例代码,但终究找不到哪里出错了。

这是我为测试打开文件而编写的代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int fileOpen(char *);

int main()
{
    printf("%d", fileOpen("My File.txt"));
    return 0;
}
int fileOpen(char *fileName) {
    FILE *fp = fopen(fileName,"r");

    if (fp == NULL);
    return -1;

    if (fp != NULL);
    return 1;
}

这总是returns -1。 再次感谢您能给我的任何帮助, -伊恩

你的问题在这里

if (fp == NULL);
        return -1;

你实质上对编译器说的是

“如果 fp 为空。”作为;关闭该声明的行为 相反,您应该只在 return -1 之后有一个分号;这样你现在说

“如果 fp 为空,return -1。”

分号用于分隔完整的语句,不一定只是行

    if (fp == NULL)
        return -1;