C - 为什么 fopen 不起作用?
C - Why fopen doesn't work?
我有这个非常简单的代码:
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
FILE * file_ptr = NULL;
file_ptr = fopen ("file.txt", "r");
if (file_ptr == NULL)
{
puts ("Error!");
return EXIT_FAILURE;
}
else
{
puts ("O.k.!");
}
return EXIT_SUCCESS;
}
输出:
Error!
为什么 fopen 不起作用?该文件未受保护,未在其他地方打开,并存储在与该程序的 *.exe 相同的文件夹中。我还尝试提供文件的完整路径和存储文件名的数组。每次输出 "Error!".
怎么回事??
我在 Windows 10 64 位上使用 Eclipse Neon.2 Release (4.6.2) 和最新的 cygwin gcc 编译器。
感谢您的帮助!
perror
可能会有帮助。
FILE *file_ptr = fopen("file.txt", "r");
if (!file_ptr) {
perror("fopen");
} else {
printf("It's working!");
}
类似问题:fopen() not working in C
问题已通过将 fopen
更改为
解决
file_ptr = fopen("xxyyzzqq.txt", "w");
然后搜索硬盘以查看文件的创建位置。
事实证明该文件是在项目源目录中创建的,而不是在调试目录(.exe 文件所在的位置)中创建的,这与使用调试目录作为工作目录的旧安装不同。
我有这个非常简单的代码:
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
FILE * file_ptr = NULL;
file_ptr = fopen ("file.txt", "r");
if (file_ptr == NULL)
{
puts ("Error!");
return EXIT_FAILURE;
}
else
{
puts ("O.k.!");
}
return EXIT_SUCCESS;
}
输出:
Error!
为什么 fopen 不起作用?该文件未受保护,未在其他地方打开,并存储在与该程序的 *.exe 相同的文件夹中。我还尝试提供文件的完整路径和存储文件名的数组。每次输出 "Error!".
怎么回事??
我在 Windows 10 64 位上使用 Eclipse Neon.2 Release (4.6.2) 和最新的 cygwin gcc 编译器。
感谢您的帮助!
perror
可能会有帮助。
FILE *file_ptr = fopen("file.txt", "r");
if (!file_ptr) {
perror("fopen");
} else {
printf("It's working!");
}
类似问题:fopen() not working in C
问题已通过将 fopen
更改为
file_ptr = fopen("xxyyzzqq.txt", "w");
然后搜索硬盘以查看文件的创建位置。
事实证明该文件是在项目源目录中创建的,而不是在调试目录(.exe 文件所在的位置)中创建的,这与使用调试目录作为工作目录的旧安装不同。