求助一道C语言问题 求改错
【问题描述】写一程序将一个文件fcopy.in拷贝至另一个文件fcopy.out, 其中在所拷贝的文件中, 多个连续空白符(包括空格符、制表符)只拷贝一个空格符, 其它字符不变。
【输入形式】
源文件名和目标文件名分别为fcopy.in和fcopy.out,程序将从当前目录下读取fcopy.in文件。
【输出形式】
将fcopy.in文件内容拷贝至当前目录下的fcopy.out文件中。在所拷贝的文件中, 多个连续空白符(包括空格符、制表符)只拷贝一个空格符,若非空白符之间有一个制表符,则该制表符也要替换为空格符,其它字符不变。
【输入样例】
假如文件fcopy.in中内容如下:
Alcatel provides end-to-end solutions.
【输出样例】
输出文件fcopy.out中内容为:
Alcatel provides end-to-end solutions.
【样例说明】
将文件fcopy.in拷贝到fcopy.out,同时做适当的转换。
空格的做好了 制表符的测试不通过
程序代码:#include<stdio.h>
#define NONBLANK 'a'
void main()
{
FILE *fp,*fp1;
int c,lastc;
fp=fopen("fcopy.in","r");
fp1=fopen("fcopy.out","w");
lastc=NONBLANK;
while((c=fgetc(fp))!=EOF)
{
if(c!=' '||c!='\t')
fputc(c,fp1);
if(c==' '||c=='\t')
if(lastc!=' '||lastc!='\t')
fputc(c,fp1);
lastc=c;
}
fclose(fp);
fclose(fp1);
}








