3

我有一个简单的程序,它打开一个文件并将文本写入文件。但是,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 部分,但没有创建文件。

请帮助解决同样的问题。

4

2 回答 2

3

如果您没有管理员权限

在编译目录中创建文件

fp=fopen("hello.txt","w+");

这将在mysample\mysample

您应该具有管理员权限,才能在其中创建文件C:\


如果您具有管理员权限,请使用以管理员身份运行打开命令提示符,然后只需提供名称即可执行您的可执行文件。

如果你使用文件名fopen.c,你会得到fopen.exe

只需fopen从命令提示符运行,它将在C:\

于 2013-10-12T06:15:50.383 回答
1

您的代码有效,但如果您想在其中创建文件,则C:\需要管理员权限,请尝试将文件保存在程序的同一文件目录中,或运行管理员cmd并在*.exe那里执行。

于 2013-10-12T06:05:32.867 回答