我有一个简单的程序,可以打开文件并将文本写入文件。但是,fopen始终返回BadPtr
,如Microsoft Visual c++, 2010
中的调试模式所示。
以下是VS C++, 2010
中显示的警告:
mysample\mysample\main.c(6): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(234) : see declaration of 'fopen'
我认为警告是一个问题并使用fopen_s
,但这也无法解决问题。以下是我的代码:
#include <stdio.h>
int main()
{
FILE *fp;
fp=fopen("c:\\hello.txt","w+");
if(fp==NULL)
{
printf("\nfopen() error\n");
return 1;
}
else
{
fprintf(fp,"\nThis is a sample text file\n");
}
fclose(fp);
return 0;
}
在上面的代码中,流不会进入if(fp == NULL)
条件,而是进入else部分,但是文件没有被创建。
请提供帮助。
答案 0 :(得分:2)
如果您没有管理员权限
在编译目录中创建文件
fp=fopen("hello.txt","w+");
这将在mysample\mysample
您应具有管理员权限,才能在C:\
如果你有管理员权限打开命令提示,运行为管理员,然后通过给出名称来执行你的可执行文件。
如果您使用文件名fopen.c
,
你会得到fopen.exe
只需从命令提示符运行fopen
,它就会在C:\
答案 1 :(得分:1)
您的代码有效,但如果您想在C:\
中创建文件,则需要管理员权限,请尝试将文件保存在程序的同一文件目录中,或运行管理员cmd
并执行*.exe
那里。