| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 454 人关注过本帖
标题:c语言的问题, 求高手帮忙解惑
只看楼主 加入收藏
godfathermf
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2012-7-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
c语言的问题, 求高手帮忙解惑
我看到的一段代码, 实现文件复制的功能, 但是我在电脑上一直无法运行, 本人windows7系统, 也不知道和系统有没有关系, 请高手帮忙!!

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
    FILE *in = NULL;
    FILE *out = NULL;
    int ch = 0;

    if(argc != 3)
    {
        printf("输出格式错误\n");
        exit(EXIT_FAILURE);
    }

    if((in = fopen(argv[1], "rb")) == NULL)
    {
        printf("无法打开文件\n");
        exit(EXIT_FAILURE);
    }

    if(out = fopen(argv[2], "wb") == NULL)
    {
        printf("无法打开文件\n");
        fclose(in);
        exit(EXIT_FAILURE);
    }

    while((ch = getc(in)) != EOF)
    {
        if(putc(ch, out) == EOF)
        {
            break;
        }
    }

    if(ferror(in))
    {
        printf("读取文件失败!\n");
    }
   
    if(ferror(out))
    {
        printf("写入文件失败!\n");
    }

    printf("文件复制成功!\n");

    fclose(in);
    fclose(out);

    return 0;
}
搜索更多相关主题的帖子: 系统 include 
2012-08-18 15:08
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:20 
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char* argv[])
{
    int ch = 0;

    if(argc != 3)
    {
         printf("输出格式错误\n");
         exit(EXIT_FAILURE);
    }
         
    FILE *in = fopen(argv[1], "r");
    if(in == NULL)
    {
        printf("无法打开文件\n");
        exit(EXIT_FAILURE);
    }

    FILE *out = fopen(argv[2], "w");
    if(out == NULL)
    {
        printf("无法打开文件\n");
        fclose(in);
        exit(EXIT_FAILURE);
    }

    while((ch = getc(in)) != EOF)
    {
        if(putc(ch, out) == EOF)
        {
            break;
        }
    }

    if(ferror(in))
    {
        printf("读取文件失败!\n");
    }

    if(ferror(out))
    {
        printf("写入文件失败!\n");
    }

    printf("文件复制成功!\n");

    fclose(in);
    fclose(out);

    return 0;
}
2012-08-18 16:08
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
既然是以二进制形式打开的文件,为何还要用getc和putc?
程序代码:
#include <stdio.h>

int main(int argc, char* argv[])
{
    FILE* in;
    FILE* out;
    unsigned char buffer[1024];
    int readSize;
    
    if (argc != 3) {
        puts("Usage: {input-file-path} {output-file-path}");
        return 0;
    }
    
    if ((in = fopen(argv[1], "rb")) == NULL) {
        printf("Can't open file: %s\n", argv[1]);
        return 0;
    }
    
    if ((out = fopen(argv[2], "wb")) == NULL) {
        printf("Can't open file: %s\n", argv[2]);
        fclose(in);
        return 0;
    }
    
    while (!feof(in)) {
        readSize = fread(buffer, sizeof(unsigned char), 1024, in);
        fwrite(buffer, sizeof(unsigned char), readSize, out);
    }
    
    fclose(in);
    fclose(out);
    return 0;
}

My life is brilliant
2012-08-18 16:18
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:0 
#include
#include
 
int main(int argc, char* argv[])
{
    int ch = 0;

    if(argc != 3)
    {
         printf("输出格式错误\n");
         exit(EXIT_FAILURE);
    }
         
    FILE *in = fopen(argv[1], "r");
    if(in == NULL)
    {
        printf("无法打开文件\n");
        exit(EXIT_FAILURE);
    }

    FILE *out = fopen(argv[2], "w");
    if(out == NULL)
    {
        printf("无法打开文件\n");
        fclose(in);
        exit(EXIT_FAILURE);
    }

    while((ch = getc(in)) != EOF)
    {
        if(putc(ch, out) == EOF)
        {
            break;
        }
    }

    if(ferror(in))
    {
        printf("读取文件失败!\n");
    }

    if(ferror(out))
    {
        printf("写入文件失败!\n");
    }

        printf("文件复制成功!\n");

    fclose(in);
    fclose(out);

    return 0;
}

你用什么编译器,这个是是带命令行参数的代码哦!如果是visual C++我也不知怎么加带参数啊,我一般是在linux下写代码的,用gcc编译,集成开发环境的话我个人一般用eclipse,上面这个我试过了没问题的
2012-08-18 16:19
快速回复:c语言的问题, 求高手帮忙解惑
数据加载中...
 
   



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

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