无法在 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;
我对编程(和这个网站)还很陌生,所以感谢您的帮助和耐心等待。我正在编写一个函数来计算文本文件中的行数,但打开文件时总是 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;