| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1197 人关注过本帖
标题:如何实现:对用户输入的文件名的内容进行拷贝。
只看楼主 加入收藏
寂静的天光云影
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-20
收藏
 问题点数:0 回复次数:4 
如何实现:对用户输入的文件名的内容进行拷贝。
如题,例如:
%EXE aFile bFile 则将文件aFile 的 内容拷贝到文件bFile中。
搜索更多相关主题的帖子: 文件名 拷贝 用户 输入 
2008-11-20 13:02
寂静的天光云影
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-20
收藏
得分:0 
补充下  是在linux 环境下
2008-11-20 13:03
liumang_D
Rank: 2
来 自:计算机
等 级:论坛游民
威 望:1
帖 子:89
专家分:50
注 册:2008-10-20
收藏
得分:0 
程序代码:
#include<stdio.h>
int main(int argc, char *argv[])
{
    FILE *f1, *f2;
    long size;//记录文件大小
    if(argc != 3)
    {
        printf("usage: *.out (filename1 filename2)\n");
        return 0;
    }

    if((f1 = fopen(argv[1], "rb")) == NULL)
    {
        printf("cannot open %s\n", argv[1]);
        return 0;
    }

    if((f2 = fopen(argv[2], "wb")) == NULL)
    {
        printf("cannot open %s\n", argv[2]);
        fclose(f1);
        return 0;
    }
    fseek(f1,0,SEEK_END);
    size = ftell(f1);
    fseek(f1,0,SEEK_SET);
    while(size--)
    {
        fputc(fgetc(f1), f2);
    }
    fclose(f1);
    fclose(f2);
    return 1;
}

上面这个程序没有采用feof函数,如果你使用feof,你复制的那个文件很有可能就比原来的文件多一个字节,正如下面这个程序:
程序代码:
#include<stdio.h>
int main(int argc, char *argv[])
{
    FILE *f1, *f2;
    if(argc != 3)
    {
        printf("usage: *.out (filename1 filename2)\n");
        return 0;
    }

    if((f1 = fopen(argv[1], "rb")) == NULL)
    {
        printf("cannot open %s\n", argv[1]);
        return 0;
    }

    if((f2 = fopen(argv[2], "wb")) == NULL)
    {
        printf("cannot open %s\n", argv[2]);
        fclose(f1);
        return 0;
    }

    while(!feof(f1))
    {
        fputc(fgetc(f1), f2);
    }

    fclose(f1);
    fclose(f2);
    return 1;
}


[[it] 本帖最后由 liumang_D 于 2008-11-20 15:36 编辑 [/it]]
2008-11-20 15:27
liumang_D
Rank: 2
来 自:计算机
等 级:论坛游民
威 望:1
帖 子:89
专家分:50
注 册:2008-10-20
收藏
得分:0 
我也补充一下,呵呵。
第一个程序完全正确。
第二个程序会多出来一个字节,那就是把原来的文件里面的文件结束符也复制过来了。所以你应该能在你复制的文件结尾看到一个y字母上面有两点的符号。
2008-11-20 15:31
寂静的天光云影
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-20
收藏
得分:0 
谢谢了
2008-11-20 21:13
快速回复:如何实现:对用户输入的文件名的内容进行拷贝。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036124 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved