C语言改写文档”w“问题没有建立新的文档

C语言谭浩强课本 文档章节,改写文档“w",当遇到不存在的文档时,系统没有建立一个新的文档,而是返回了不能打开

#include
#include
int main()
 {
     FILE *in,*out;
     char ch,infile[10],outfile[10];
     printf("输入要读入的文件名字");
    scanf("%s",infile);
    printf("输入要写入的文件名字");
    scanf("%s",outfile);
    
    if((in=fopen(infile,"r"))==NULL)//r是读文档 
    {
        printf("cannot open");
        exit(0);
     }
    if((out=fopen(outfile,"w"))==NULL)//w是改写文档 
    {
        printf("cannot open");//--------------------------------------------问题在这个位置
        exit(0);
     } 
    
    ch=fgetc(infile);
    while(!feof(in))//文件的结束标志 
    {
        fputc(ch,outfile);//将ch读入文档2中 
        putchar(ch);//将ch显示到屏幕上 
        ch=fgetc(infile);//再从输入文件当中再读入一个字符 
     } 
    
    putchar(10);//换行
    fclose(in);//fclose()内的是文件指针变量 
    fclose(out);
    return 0; 
  } 

img


如图,study.dat 是已经存在的文档,但是当我输入work.dat时,系统没有给我建立新的文档,请问各位这个是什么问题?谢谢

你用管理员身份运行试下,可能是你没有创建或修改的权限,只有读的权限