int ferror(文件指针) 返回值为0表示没有错误,返回值非0 表示有错
// C_Test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdlib.h>/*为了调用system("PAUSE");*/
#include <time.h>/*为了调用time;*/
#include <stdio.h>
#include <string.h>
#include <windows.h>
void error (int e)
{
if(e==0)
printf("Input Error! \n");
else
printf("Output Error! \n");
}
int main(int argc , char* argv[])
{
FILE *in, *out;
int tab, i;
char ch, filename1[50], filename2[50];
printf("Input filename1 :");
scanf("%s",filename1);
printf("Input filename2 :");
scanf("%s",filename2);
if((in=fopen(filename1,"r"))==NULL)/*以读的形式打开文件1*/
{
printf("Can't open filename1\n");
exit(0);
}
if((out=fopen(filename2,"w"))==NULL)/*以写的形式打开文件1*/
{
printf("Can't open filename2\n");
exit(0);
}
tab = 0;
ch = fgetc(in);
while(!feof(in))
{
if(ferror(in))
{
error(0);
}
if(ch == '\t')/*若发现制表符则转为相应的空格*/
{
for(i=tab; i<8; i++)
{
fputc(' ',out);
if(ferror(out))
{
error(1);
}
}
tab=0;
}
else
{
fputc(ch,out);
if(ferror(out));
error(1);
tab++;
if(tab==8)
tab=0;
if((ch=='\n') || (ch='\r'))
tab=0;
}
ch = fgetc(in);
}
fclose(in);
fclose(out);
system("PAUSE");
return C_SYS_OK;
}