C语言文件操作问题。求解惑。
将一个文件中的信息复制到另一个文件中。text.txt是源文件,out.txt是目标文件,怎么多了个?主要代码如下:FILE*in,*out;charch,infile[...
将一个文件中的信息复制到另一个文件中。
text.txt是源文件,out.txt是目标文件,怎么多了个?
主要代码如下:
FILE *in, *out;
char ch, infile[10], outfile[10];
printf("Enter the infile name:\n");
//输入文件的文件名
scanf("%s", infile);
printf("Enter the outfile name:\n");
//输出文件的文件名
scanf("%s", outfile);
if ((in = fopen(infile, "r")) == NULL)
{
printf("Cannot open infile.\n");
exit(0);
}
if ((out = fopen(outfile, "w")) == NULL)
{
printf("Cannot open outfile.\n");
exit(0);
}
while (!feof(in))
{
fputc(fgetc(in), out);
}
fclose(in);
fclose(out); 展开
text.txt是源文件,out.txt是目标文件,怎么多了个?
主要代码如下:
FILE *in, *out;
char ch, infile[10], outfile[10];
printf("Enter the infile name:\n");
//输入文件的文件名
scanf("%s", infile);
printf("Enter the outfile name:\n");
//输出文件的文件名
scanf("%s", outfile);
if ((in = fopen(infile, "r")) == NULL)
{
printf("Cannot open infile.\n");
exit(0);
}
if ((out = fopen(outfile, "w")) == NULL)
{
printf("Cannot open outfile.\n");
exit(0);
}
while (!feof(in))
{
fputc(fgetc(in), out);
}
fclose(in);
fclose(out); 展开
5个回答
展开全部
while (!feof(in))
{
char c = fgetc(in);
if (c == -1)
{
break;
}
fputc(c, out);
}
fgetc 这个函数的返回值,是返回读取的一个字节。如果读到文件末尾或者读取出错时返回EOF。
读完最后一个1的时候,文件指针并不是文件末尾,所以 feof 不会返回0 导致多读了一个-1
{
char c = fgetc(in);
if (c == -1)
{
break;
}
fputc(c, out);
}
fgetc 这个函数的返回值,是返回读取的一个字节。如果读到文件末尾或者读取出错时返回EOF。
读完最后一个1的时候,文件指针并不是文件末尾,所以 feof 不会返回0 导致多读了一个-1
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while (!feof(in))
{
fputc(fgetc(in), out);
}
改成
do
{
fputc(fgetc(in), out);
}while (!feof(in));
{
fputc(fgetc(in), out);
}
改成
do
{
fputc(fgetc(in), out);
}while (!feof(in));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while (!feof(in))
{
fputc(fgetc(in), out);
}
这段应该改为:
ch=fgetc(in);//先读一次文件再去判断文件是否结束
while (!feof(in))
{
fputc(ch, out);
ch=fgetc(in);
}
{
fputc(fgetc(in), out);
}
这段应该改为:
ch=fgetc(in);//先读一次文件再去判断文件是否结束
while (!feof(in))
{
fputc(ch, out);
ch=fgetc(in);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询