| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1790 人关注过本帖
标题:怎么复制文件内容的同时输出进度百分比? 新手求助
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 10楼 炎天
  这样也可以~  
   /*while(!feof(in))
     {
            len++;
            ch = fgetc(in);
     }*/

     fseek(in,0L,2);
     len=ftell(in);
     fseek(in, 0L,0);

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-29 22:24
bb102
Rank: 1
等 级:新手上路
帖 子:83
专家分:3
注 册:2016-10-22
收藏
得分:0 
回复 10楼 炎天
输出在屏幕上的字符不全
2016-12-29 22:25
bb102
Rank: 1
等 级:新手上路
帖 子:83
专家分:3
注 册:2016-10-22
收藏
得分:0 
回复 9楼 wp231957
好,谢谢
2016-12-29 22:28
bb102
Rank: 1
等 级:新手上路
帖 子:83
专家分:3
注 册:2016-10-22
收藏
得分:0 
回复 10楼 炎天
输出在屏幕的字符不全
2016-12-29 22:31
bb102
Rank: 1
等 级:新手上路
帖 子:83
专家分:3
注 册:2016-10-22
收藏
得分:0 
回复 11楼 九转星河
怎么处理输出在屏幕的字符不全
2016-12-29 22:36
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:6 
程序代码:
 #include<stdio.h>
  #include<windows.h>
  #include<stdlib.h>
  main()
  {
        char start[100];
      int len = 0 ,t = 0 ,l = 0;
      FILE *in,*out;
      char ch,infile[10],outfile[10];
      printf("enter the name of the fileread:");
      scanf("%s",infile);
      printf("enter the name of the filewrite:");
      scanf("%s",outfile);
      if((in=fopen(infile,"r"))==NULL)
      {
          printf("can not open the file!\n");
          exit(0);
      }
      if((out=fopen(outfile,"w"))==NULL)
      {
          printf("can not open the file!\n");
          exit(0);
      }
      
      fseek(in,0L,2);
      len=ftell(in);
      fseek(in, 0L,0);
      
      while(!feof(in))
      {
          t++;
          ch=fgetc(in);
          fputc(ch,out);
          start[t-1] = ch;
          printf("%*.*s",-(len+1),t,start);
          
          printf("\t\t");
          printf("%.2lf", 1.0*(t-1)/len);
          Sleep(280);
          for(l = 0; l <+12+len+1+3; l++)
          {
              printf("\b");
          }
          
      }
      putchar(10);
      fclose(in);
      fclose(out);
  }

早知做人那么辛苦!  当初不应该下凡
2016-12-30 09:10
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
给你一段能运行的代码  
程序代码:
#include <stdio.h>
#include <string.h>
#include <windows.h>

int main(void)
{
    FILE *in,*out;
    char ch;
    in=fopen("1.txt","rb");
    out=fopen("2.txt","w");
    fseek(in,0,SEEK_END);
    int fsize=ftell(in);
    char* t="Now it will copping completed: ";
    int len=(int)strlen(t);
    fseek(in,0,SEEK_SET);
    ch=fgetc(in);
    int i=1;
    while(!feof(in))
    {
        fputc(ch,out);
        printf("%s %6.2lf",t,1.0*i/fsize*100);
        Sleep(30);
        for(int k=0;k<len+7;k++) printf("\b");
        ch=fgetc(in);
        i++;
    }
    printf("\n");
    fclose(in);
    fclose(out);
    return 0;
}

图片附件: 游客没有浏览图片的权限,请 登录注册



DO IT YOURSELF !
2016-12-30 09:43
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
不过这么做代价有些大   原本不到一秒就可以完成的copy动作  变成好几十倍了

DO IT YOURSELF !
2016-12-30 09:44
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用bb102在2016-12-29 22:36:14的发言:

怎么处理输出在屏幕的字符不全
主要是你还没明白在控制台下显示进度表 是什么原理  
出现吃字符的现象  主要是清屏不给力 没有完整的清屏

DO IT YOURSELF !
2016-12-30 09:46
快速回复:怎么复制文件内容的同时输出进度百分比? 新手求助
数据加载中...
 
   



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

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