fopen在vs中不可用,用fopen_s替换后显示不接受两个函数


#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int ch;
FILE*fp;
char fname[50];
printf("Enter the name of the file:");
scanf_s("%s",fname,sizeof(fname));
fp=fopen(fopen,"r");//问题就出在这里,用fopen_s替代过,显示不接受两个函数
//这段代码是C Primer Plus第六版193页的,用的是vs2017


试试这样可以吗

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
    int ch;
    FILE* fp;
    char fname[50];
    printf("Enter the name of the file:");
    scanf_s("%s", fname, sizeof(fname));
    fp = fopen(fopen, "r");//问题就出在这里,用fopen_s替代过,显示不接受两个函数
//这段代码是C Primer Plus第六版193页的,用的是vs2017
    return 0;
}

有帮助望采纳,谢谢!

fopen_s的原型是errno_t fopen_s( FILE** pFile, const char *filename, const char *mode );

第一个参数是填写fp,第二个参数是文件名,第三个参数是打开方式。

如果成功返回0,失败则返回相应的错误代码

你可以把fopen_s改成fopen,或者改成fopen_s(&fp,"xx.dat","r");//xx.dat换成你的文件名字