C++ 简单fopen和fprintf不工作
我有一个简单的程序,它可以打开一个文件并将文本写入文件。但是,在代码<微软VisualC++,2010 < /COD> 中,FEnter总是返回<代码> BADPTR < /代码>。 以下是在C++ 简单fopen和fprintf不工作,c++,c,fopen,C++,C,Fopen,我有一个简单的程序,它可以打开一个文件并将文本写入文件。但是,在代码 中,FEnter总是返回 BADPTR < /代码>。 以下是在> 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_SE
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\u 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;
}
#包括
int main()
{
文件*fp;
fp=fopen(“c:\\hello.txt”,“w+”;
如果(fp==NULL)
{
printf(“\n打开()错误\n”);
返回1;
}
其他的
{
fprintf(fp,“\n这是一个示例文本文件\n”);
}
fclose(fp);
返回0;
}
在上面的代码中,流不会进入if(fp==NULL)
条件,而是进入else部分,但不会创建文件
请提供相关帮助。您的代码可以工作,但是如果您想在
C:\
中创建文件,您需要管理员权限,请尝试将文件保存在程序的同一文件目录中,或者运行管理员cmd
并在那里执行*.exe
。如果您没有管理员权限
在编译目录中创建文件
fp=fopen("hello.txt","w+");
这将在mysample\mysample
您应该具有管理员权限,才能在C:\
如果您具有管理员权限,请使用“以管理员身份运行”打开命令提示符,然后只需给出名称即可执行可执行文件 如果使用filename
fopen.c
,
您将获得fopen.exe
只需在命令提示符下运行
fopen
,它将在C:\
中创建文件,您在C:
中工作,您有管理员权限吗?@GrijeshChauhan:没有,我没有管理员权限。我试试D:你是在创建一个奇怪的Windows项目吗?我发现很难相信,即使是微软也会像那样试图贬低标准C。@PaulGriffiths:我正在创建一个通常简单的空控制台窗口项目。你应该移动fclose(fp)将>编码到else分支中。使用空指针调用fclose
会导致未定义的行为。谢谢。。。它在C:@sam Most welcome yes之外的任何目录下工作,正如所说,您应该具有管理员权限才能在C中创建文件:\