fopen打不开文件
照抄书上的代码的,这个程序是创建两个txt文件并向其中写入字母,之后输出到一个txt文件中并排好序在输出不改:编译显示can not open file,按任意键退出
改格式:书上的代码是fopen("a1","r")。尝试了带w等的格式,结果输出file ABC(手懒,少打,下同)就提示按任意键退出
改路径:创建空的工程又接着创建空的文件后新建两个txt文件,之后不用文件名而用路径名,结果输出file ABC,按任意键退出
上面三种情况都没报错
现在是我不能输入数据
有大佬能现身解释下为什么出现第二三种情况吗,第一种我知道,r只能打开已存在的文件
第一张图对应第一种情况,第二三图对应第三种情况,第二种情况只需在不改的情况下的代码中把r换成带w的就行,没发图(懒了)
谢谢大佬了
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp=NULL;
int i,j,n,i1;
char c[100],t,ch;
if((fp=fopen("D:\\vc6.0\\myproject\\c2\\a1.txt","r"))==NULL)
{
printf("can not open file\n");
exit(0);
}
printf("file A:\n");
for(i=0;(ch=fgetc(fp))!=EOF;i++)
{
c[i]=ch;
putchar(c[i]);
}
fclose(fp);
i1=i;
if((fp=fopen("D:\\vc6.0\\myproject\\c2\\b1.txt","r"))==NULL)
{
printf("\ncan not open file\n");
exit(0);
}
printf("\nfile B:\n");
for(i=i1;(ch=fgetc(fp))!=EOF;i++)
{
c[i]=ch;
putchar(c[i]);
}
fclose(fp);
n=i;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(c[i]>c[j])
{
t=c[i];
c[i]=c[j];
c[j]=t;
}
printf("\nfile C:\n");
fp=fopen("c1.txt","w");
for(i=0;i<n;i++)
{
putc(c[i],fp);
putchar(c[i]);
}
printf("\n");
fclose(fp);
fp=NULL;
return 0;
}
[此贴子已经被作者于2019-8-3 22:10编辑过]