读书人

c语言资料复制

发布时间: 2012-08-19 21:09:48 作者: rapoo

c语言文件复制
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp1,*fp2;
char ch;
fp1=fopen("E:\\test.txt","r");
if(fp1==NULL)
{
printf("can not open file");
exit(0);
}
fp2=fopen("E:\\test2.txt","w");
if(fp2==NULL)
{
printf("can not open file");
exit(1);
}
fscanf(fp1,"%c",&ch);
while(!feof(fp1))
{
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
fprintf(fp2,"%c",ch);
}
fclose(fp1);
fclose(fp2);
}
为啥程序运行后显示的是test中的第一个字母 而且还循环了很多遍·?

[解决办法]
fscanf(fp1,"%c",&ch);
while(!feof(fp1))
{
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
fprintf(fp2,"%c",ch);
}

这里只读了一遍,楼主本意应该是这样:

while(!feof(fp1))
{
fscanf(fp1,"%c",&ch);
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
fprintf(fp2,"%c",ch);
}

读书人网 >C语言

热点推荐