简单的fopen和fprintf无法正常工作
我有一个简单的程序,它打开一个文件并将文本写入文件。 但是,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 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部分,但是没有创建文件。
关于相同的请帮助。
如果您没有管理员权限
在编译目录中创建文件
fp=fopen("hello.txt","w+");
这将在mysample\mysample
创建文件
你应该有管理员权限,在C:\
创建文件
如果你有管理员权限打开命令提示与运行管理员,然后通过给出名称执行你的可执行文件。
如果您使用filename fopen.c
,您将获得fopen.exe
只需从命令提示符运行fopen
,它将在C:\
创建文件
您的代码有效,但如果您想在C:\
创建文件,则需要管理员权限,尝试将文件保存在程序的同一文件目录中,或运行Administrator cmd
并在那里执行*.exe
。