| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4970 人关注过本帖
标题:如何将程序运行时的信息打印到一个文件中
只看楼主 加入收藏
luosiye
Rank: 2
等 级:论坛游民
帖 子:15
专家分:39
注 册:2011-9-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:12 
如何将程序运行时的信息打印到一个文件中
问题如题,比如,我写了个文件复制的程序,用命令行写的,假如说我要把运行时的出错信息、拷贝进度、文件信息打印到一个文件中要怎么写代码,还有就是,为什么我的代码编译通过了之后,我在dos界面的运行总是不对,这个运行命令改怎么写,我把代码贴出来,请大家帮看看,谢谢!
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define BUFFER_SIZE 1024

int main(int argc,char * argv[])
{
    FILE *fFrom,*fTo;
    char buffer[BUFFER_SIZE];
    size_t BytesFrom,BytesTo;
    int length=0;

    if(argc!=3)
    {
        printf("Usage:%s fFrom fTo",argv[0]);
        exit(0);
    }
   
    fFrom=fopen(argv[1],"r");
    if(NULL==fFrom)
    {
        printf("Open file %s failed\n",argv[1]);
        exit(0);
    }
    fTo=fopen(argv[2],"wb+");
    if(NULL==fTo)
    {
        printf("Open file %s failed\n",argv[2]);
        exit(0);
    }
    memset(buffer,0,BUFFER_SIZE);

    while(BytesFrom=fread(buffer,BUFFER_SIZE,1,fFrom)>0)
    {
        BytesTo=fwrite(buffer,BytesFrom,1,fTo);
        if(BytesFrom!=BytesTo)
        {
            printf("file copy failed,plaese try againt");
            exit(0);
        }
        length+=BytesTo;
        printf("copying file...%d bytes copy\n",length);
    }
    fclose(fFrom);
    fclose(fTo);
    return 0;

}


搜索更多相关主题的帖子: 如何 信息 
2011-09-13 21:40
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 楼主 luosiye
把错误贴出来

总有那身价贱的人给作业贴回复完整的代码
2011-09-14 00:12
luosiye
Rank: 2
等 级:论坛游民
帖 子:15
专家分:39
注 册:2011-9-8
收藏
得分:0 
以下是引用embed_xuel在2011-9-14 00:12:54的发言:

把错误贴出来
没有错误,我的意思是怎样把想要的运行信息打出来,比如,拷贝进度。
2011-09-14 08:35
tisyang
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:132
专家分:737
注 册:2011-5-7
收藏
得分:0 
程序的运行状况需要自己添加打印代码,来显示程序运行的状况,至于输出到文件,可以考虑命令行重定向标准输出和标准错误到文件

C++ 用无参数构造函数生成对象时候请勿在构造函数后添加无用的那一对括号,否则有可能会被当成函数声明而忽略,嗯,栈上构建的时候就是这样。
2011-09-14 09:41
statics
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:163
专家分:625
注 册:2011-8-29
收藏
得分:0 
fopen
fwrite
fclose
打开文件,把要打印的东西写进文件,就ok

惟我独行...
2011-09-14 09:47
dongdong5888
Rank: 2
等 级:论坛游民
帖 子:4
专家分:10
注 册:2011-4-15
收藏
得分:0 
fwrite的时候把写入的长度,累加,然后和文件的总长度做商,然后打印就行了啊
2011-09-14 12:35
luosiye
Rank: 2
等 级:论坛游民
帖 子:15
专家分:39
注 册:2011-9-8
收藏
得分:0 
以下是引用tisyang在2011-9-14 09:41:58的发言:

程序的运行状况需要自己添加打印代码,来显示程序运行的状况,至于输出到文件,可以考虑命令行重定向标准输出和标准错误到文件
这段代码要怎样写呢?又是加在哪里呢?可否直接在我的代码帮我加一下,谢谢!
2011-09-14 14:44
tisyang
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:132
专家分:737
注 册:2011-5-7
收藏
得分:0 
回复 7楼 luosiye
你想要输出的信息,比如复制了多少字节、当前一些变量的值之类的,全部输出到标准输出,然后运行程序的时候重定向标准输出到文件就可以了。至于你想输出什么信息,这是自己的程序设计问题,这只是告诉一种手段,想用它干什么,就是使用者的事情了。

C++ 用无参数构造函数生成对象时候请勿在构造函数后添加无用的那一对括号,否则有可能会被当成函数声明而忽略,嗯,栈上构建的时候就是这样。
2011-09-14 16:06
thlgood
Rank: 5Rank: 5
等 级:职业侠客
帖 子:281
专家分:381
注 册:2010-9-24
收藏
得分:20 
假设程序的名字叫abc.exe
有两种办法:
第一:打开cmd,切换到程序所在的目录,然后执行./abc.ext > output.txt
第二:在main函数里面加入这样一样代码:freopen("e:\\output.txt", "w", stdout);

这样,输出结果就会被写入output.txt中

o(∩∩)Linux & Python 群:187367181
2011-09-14 16:15
luosiye
Rank: 2
等 级:论坛游民
帖 子:15
专家分:39
注 册:2011-9-8
收藏
得分:0 
以下是引用thlgood在2011-9-14 16:15:56的发言:

假设程序的名字叫abc.exe
有两种办法:
第一:打开cmd,切换到程序所在的目录,然后执行./abc.ext > output.txt
第二:在main函数里面加入这样一样代码:freopen("e:\\output.txt", "w", stdout);
 
这样,输出结果就会被写入output.txt中
那需要在文件所在目录新建一个output.txt文件吗,还有,我的DOS不管运行任何程序都会提示"xxxxxx"不是有效命令,可能是环境变量出了问题,因为我改过,要怎样把它改回来,在百度、谷歌上找,按照上面的方法试了都没用,能否跟我说下。
2011-09-14 21:33
快速回复:如何将程序运行时的信息打印到一个文件中
数据加载中...
 
   



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

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