文本文档提取字符串

以lm-sensors为例,lm-sensors是一个能够监视硬件环境信息的开源软件,能够打印主板环境温度,cpu温度,风扇转速等。编译后生成的可执行程序为sensors。

执行sensors后会显示如下:

1 w83627dhg-isa-0290
 2 Adapter: ISA adapter
 3 Vcore:        +1.22 V  (min =  +0.00 V, max =  +1.74 V)
 4 +12V:        +29.18 V  (min = +18.56 V, max =  +3.20 V)  ALARM
 5 3.3V 3VCC:    +3.26 V  (min =  +2.77 V, max =  +0.72 V)  ALARM
 6 5V:           +6.02 V  (min =  +6.40 V, max =  +1.31 V)  ALARM
 7 CpuVcc:       +1.55 V  (min =  +0.25 V, max =  +1.51 V)  ALARM
 8 1.5V:         +1.05 V  (min =  +1.46 V, max =  +1.76 V)  ALARM
 9 3VSB:         +3.22 V  (min =  +1.04 V, max =  +2.69 V)  ALARM
10 VBAT:         +3.17 V  (min =  +2.88 V, max =  +1.76 V)  ALARM
11 FAN1:        5192 RPM  (min = 1562 RPM, div = 4)
12 FAN3:        6490 RPM  (min = 9375 RPM, div = 4)  ALARM
13 FAN2:           0 RPM  (min = 10546 RPM, div = 128)  ALARM
14 FAN4:        5113 RPM  (min = 1562 RPM, div = 4)
15 System temp:  +26.0°C  (high = +46.0°C, hyst = -90.0°C)  sensor = thermistor
16 CPU temp:     +29.5°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor
17 intrusion0:  ALARM

现在要求只显示风扇,温度等信息,可使用如下代码实现:以风扇为例

1 #include "stdio.h"
 2 #include "string.h"
 3 int main(){
 4     int nchars=0;
 5     FILE *fp1;
 6     FILE *fp2;
 7     char c;
 8     fp1=fopen("/home/zhangmiaoling/sensors.txt","r");
 9     if(NULL == fp1)
10          {
11           printf("failed to open sensors\n");
12           return 1;
13           }
14     fp2=fopen("/home/zhangmiaoling/sensors.txt","r");
15     if(NULL == fp2)
16          {
17           printf("failed to open sensors\n");
18           return 1;
19           }
20     while((c=getc(fp1))!=EOF){
21         nchars++;
22         if (c=='\n'){
23                char s[nchars+1];
24                memset(s,0,(nchars+1)*sizeof(char));
25                fgets(s,nchars+1,fp2);/*用fgets读一行到数组s中*/
26               // printf("%s\n",s);
27                if((s[0]=='F')&&(s[1]=='A')&&(s[2]=='N')){
28                             printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7],   s[8],s[9],s[10],s[11],s[   12],s[13],s[14],s[15],s[16],s[17],s[18],s[19],s[20]);
29                             memset(s,0,(nchars+3)*sizeof(char));
30                                                          }
31                nchars=0;
32                     }
33                            }
34           fclose(fp1);
35           fclose(fp2);
36           return 0;
37          }
                                 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值