程序从txt中提取带单位的数值,文本比较大

冰魂夢蝶 2014-03-17 12:55:06
最近刚开始学《计算机网络》,老师来了一个问题:使用PING命令或Tracert命令获得网络延迟,选择5个典型网站,观测时间间隔30秒,至少12个小时,绘制网络延迟图,最近求均值和方差。没有头绪,望指点,多谢。老师说可以用C语言或者汇编程序编写一个延迟程序,。。。。。测试数据已经有了,就是不会提取,求程序
...全文
209 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰魂夢蝶 2014-03-17
  • 打赏
  • 举报
回复
文本内容形如: 正在 Ping 163.xdwscache.glb0.lxdns.com [162.105.28.233] 具有 32 字节的数据: 来自 162.105.28.233 的回复: 字节=32 时间=4ms TTL=54 162.105.28.233 的 Ping 统计信息: 数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 4ms,最长 = 4ms,平均 = 4ms 正在 Ping 163.xdwscache.glb0.lxdns.com [162.105.28.233] 具有 32 字节的数据: 来自 162.105.28.233 的回复: 字节=32 时间=18ms TTL=54 162.105.28.233 的 Ping 统计信息: 数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 18ms,最长 = 18ms,平均 = 18ms。 我要提取里面的“时间= ms”这个数据,还要写到另一个文本中,可以吗?
赵4老师 2014-03-17
  • 打赏
  • 举报
回复
仅供参考:
#include <stdio.h>
#include <string.h>
#define MAXLEN 1000
FILE *f;
char ln[MAXLEN];
char fn[256];
int L;
int n;
int v1;
int v2;
void main() {
    strcpy(fn,"in.txt");
    f=fopen(fn,"r");
    if (NULL==f) {
        fprintf(stderr,"Can not open file [%s]!\n",fn);
        return;
    }
    n=0;
    while (1) {
        if (NULL==fgets(ln,MAXLEN,f)) break;
        n++;

        if (NULL==strstr(ln,"object")) printf("%s",ln);

        L=strlen(ln);
        if ('\n'==ln[L-1]) {
            ln[L-1]=0;
        } else {
            fprintf(stderr,"Too long(>=%d) at line %d:%s...\n",MAXLEN,n,ln);
            break;
        }

        if (2==sscanf(ln,"%d%*s%d",&v1,&v2)) {
            if (1<=v1 && v1<=10
             && 1<=v2 && v2<=10) {
                printf("%d,%d\n",v1,v2);
            } else {
                fprintf(stderr,"Data(%d,%d) Invalid at line %d:%s\n",v1,v2,n,ln);
            }
        } else {
            fprintf(stderr,"Format error at line %d:%s\n",n,ln);
        }
    }
    fclose(f);
}
赵4老师 2014-03-17
  • 打赏
  • 举报
回复
fopen fgets sscanf fclose

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧