C语言 --文件

实现书上的实例:有一个磁盘文件,先将它显示到屏幕上,在复制到另一个文件中,用c语言实现。代码如下:

# include
main()
{
FILE *fp1,*fp2;
fp1=fopen("E:\111222.txt","r");
fp2=fopen("E:\1111222.txt","w");
while(!feof(fp1))  
putchar(getc(fp1));
rewind(fp1);
while(!feof(fp1))
putc(getc(fp1),fp2);
fclose(fp1);
fclose(fp2);
}


error C2660: 'fputc' : function does not take 1 parameters  出现这个错误,说明函数的调用形式有问题

编译时,系统有点奔溃.自认为没有输错命令,那么可能原本的代码不全,而且系统会自动生成一个文件。

通过网上搜索代码:

# include
#include


main()
{
FILE *fp1,*fp2;
char c;
if ((fp1=fopen("E:\111222.txt", "r"))==NULL)
    {
        printf("connot open\n");
        exit(0);//当文件打开失败时,立即退出。原因:后面的代码对文件进行操作会出现错误。
    }
    if ((fp2=fopen("E:\1111222.txt", "w"))==NULL)
    {
        printf("connot open\n");
        exit(0);
    }
while ((c = fgetc(fp1)) != EOF)
{
fputchar(fgetc(fp1));
rewind(fp1);
}


while ((c = fgetc(fp1)) != EOF)//当读取的字符不是文件的结束符
    {
        fputc(c,fp2);
    }
    fclose(fp1);
    fclose(fp2);
    return 0;
}

编译显示 cannot open,读不出文件。将文件路径改为if ((fp1=fopen("E:/111222.txt", "r"))==NULL),,,,将\改为/则成功读取,但是一直将fp1文件中第一个字符循环显示在屏幕上,那是因为rewind(fp1);不应该放在while中,应该当读取到屏幕上这个操作结束后,在将位置指针指向文件开头,用于复制文件。这样这个操作就完成了。

你可能感兴趣的:(C语言 --文件)