C语言文件操作有问题 结果不是我期待的,运行后显示:Source file cannot be opened,怎么会这样!!
#include<stdio.h>#include<stdlib.h>#defineBUFFSIZE5000voidmain(){FILE*sfp,*dfp;inti;c...
#include<stdio.h>
#include<stdlib.h>
#define BUFFSIZE 5000
void main()
{
FILE * sfp,* dfp;
int i;
char buf[BUFFSIZE];
if((sfp=fopen("C:\\sfile.txt","r"))==NULL) /*以只读方式打开*/
{
printf("Source file cannot be opened\n");
exit(1);
}
if(!(dfp=fopen("C:\\dfile.txt","w"))) /*以只写方式打开*/
{
printf("Destination file cannot be opened\n");
exit(1);
}
i=0;
while(!feof(sfp)) /*判断是否文件尾,不是则循*/
{
buf[i++]=fgetc(sfp); /*读出数据送缓冲区*/
if(i>=5000) /*若i超出5000,程序设置的缓冲区不足*/
{
printf("buffer not enough!");
exit(1);
}
}
i=i-2;
while(i>=0) /*控制反序操作*/
{
fputc(buf[i],dfp); /*写入目的文件中*/
i--;
}
fclose(sfp);
fclose(dfp);
} 展开
#include<stdlib.h>
#define BUFFSIZE 5000
void main()
{
FILE * sfp,* dfp;
int i;
char buf[BUFFSIZE];
if((sfp=fopen("C:\\sfile.txt","r"))==NULL) /*以只读方式打开*/
{
printf("Source file cannot be opened\n");
exit(1);
}
if(!(dfp=fopen("C:\\dfile.txt","w"))) /*以只写方式打开*/
{
printf("Destination file cannot be opened\n");
exit(1);
}
i=0;
while(!feof(sfp)) /*判断是否文件尾,不是则循*/
{
buf[i++]=fgetc(sfp); /*读出数据送缓冲区*/
if(i>=5000) /*若i超出5000,程序设置的缓冲区不足*/
{
printf("buffer not enough!");
exit(1);
}
}
i=i-2;
while(i>=0) /*控制反序操作*/
{
fputc(buf[i],dfp); /*写入目的文件中*/
i--;
}
fclose(sfp);
fclose(dfp);
} 展开
4个回答
展开全部
Source file cannot be opened 是你自己写的输出语句打印出来的。
你有 printf("Source file cannot be opened\n");
它表示 fopen("C:\\sfile.txt","r") 失败。
原因,可能你的文件 C:\\sfile.txt 尚未存在,或被别的程序用着,不允许进去读。
你有 printf("Source file cannot be opened\n");
它表示 fopen("C:\\sfile.txt","r") 失败。
原因,可能你的文件 C:\\sfile.txt 尚未存在,或被别的程序用着,不允许进去读。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
经本人调试,一定是你的C盘里面没有sfile.txt这个文件,你的代码没有什么问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的c盘根目录下有没有sfile.txt这个文件呀?没有的话肯定现实那个!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询