Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 简单fopen和fprintf不工作_C++_C_Fopen - Fatal编程技术网

C++ 简单fopen和fprintf不工作

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

我有一个简单的程序,它可以打开一个文件并将文本写入文件。但是,在代码<微软VisualC++,2010 < /COD>

中,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_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中创建文件:\