筛选出多个数据并判断

1.sscanf和sprintf只适用于投机取巧的场合。sprintf你可以把数据整理好了,在内存里把它写进去会很容易的。读取的时候,多一个少一个就不好弄了。

2.sscanf只能处理最标准的数据,如果每一行格式都一样,可以使用,如果不一样,会遇到很多问题。

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

char path[256] = "Z:\\I\\尹成清华终极版C语言视频源码文档20150131\\大数据相关数据\\批量级别NASA.txt";

 typedef struct haihualove
{
    char allstr[2048];
    int id;
    char name[10];
    char sex[3];
    int age;
    int tall;
    char study[10];
    char mary[10];
    char where[10];
}H,*PH;
 PH ph;
 void init()
 {
      ph = calloc(100, sizeof(H));//开辟空间
     //127740    1小姐    女    22    166    本科    未婚    合肥    山羊座    编辑    普通话    安徽,浙江,江苏,上海    面议元/天    初次接触    商务伴游,私人伴游,交友伴游,景点伴游    本人今年22岁,半年前大学毕业,平时在上海工作,放假时回安徽。有意可以联系我哦。另外我是大叔控。。。    0:00—23:00    15755106787    17185603[email protected]    http://www.banyou.com/    1718560307

     FILE *pf = fopen(path, "r");
     for (int i = 0; i < 101; i++)
     {
         char str[2048] = { 0 };
         fgets(str, 2048, pf);
         if (i >= 1)
         {

             strcpy(ph[i - 1].allstr, str);//拷贝总串
             sscanf(str, "%d %s %s %d %d %s %s %s", &ph[i - 1].id, ph[i - 1].name, ph[i - 1].sex, &ph[i - 1].age, &ph[i - 1].tall, ph[i - 1].study, ph[i - 1].mary, ph[i - 1].where);

         }
     }

     fclose(pf);
 }

 void main()
 {
     init();

     for (int i = 0; i < 100;i++)
     {
         if (strcmp(ph[i].mary,"已婚")==0)
         {
             printf("%s\n", ph[i].allstr);
         }
        /* if (ph[i].age<20 && ph[i].tall>165)
         {
             printf("%s\n", ph[i].allstr);
         }*/
     }

     system("pause");
 }

void main1()
{
    FILE *pf = fopen(path, "r");
    while (!feof(pf))
    {
        char str[2048] = { 0 };
        fgets(str, 2048, pf);
        printf("%s", str);
        printf("\n\n\n\n");

    }
    fclose(pf);

    system("pause");
}
时间: 2024-11-03 22:30:05

筛选出多个数据并判断的相关文章

探秘金山隐私保险箱 (解密出加密的数据)

背景 信息化时代的高速发展,同时也孕育了更多的网络攻击.网银被盗.隐私信息泄露等 无疑成为了广大网民最为关注的问题.几年前,"艳照门"事件的曝光,更是引发了互联网的一阵恐慌. 如今,移动互联网的迅速普及,手机相机的像素也越来越高,我们可以很方便的使用手机拍摄自己感兴趣的东西并上传到朋友圈.微博等.但是,这同时也引入了另外一个问题,拍了这么多东西,总有自己的一些隐私数据是不想对外公开的.于是,各大互联网安全厂商纷纷推出了能在移动设备上加密照片.音乐.视频等文件的应用程序.但是,这些应用真

[ jquery 过滤器 slice(start, [end]) ] 此方法用于在选择器的基础之上精确筛选出匹配的子集(可以使用前导限制范围)

此方法用于在选择器的基础之上精确筛选出匹配的子集(可以使用前导限制范围): 1.start:开始选取子集的位置.第一个元素是0.如果是负数,则可以从集合的尾部开始选起 2.end:结束选取自己的位置,如果不指定,则就是本身的结尾 3.参数包含开始,不包含结束 [ start , end ) 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title>

[ jquery 过滤器 .first() | .last() ] 此方法用于在选择器的基础之上精确筛选出第一个(最后一个)元素(可以使用前导限制范围)

此方法用于在选择器的基础之上精确筛选出第一个(最后一个)元素(可以使用前导限制范围): 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content

Sliverlight linq中的数组筛选数据库中的数据

首先 什么是linq呢 ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性. 它是.NET框架的扩展,它允许我们以数据库查询的方式查询数据集合. 借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据. 接下来讲讲我工作中用到的 linq中的数组筛选数据库中的数据 public List GetList1(string cardPhone,string

[ jquery 过滤器 .not(expr|obj|ele|fn) ] 筛选出与指定表达式不匹配的元素

筛选出与指定表达式不匹配的元素: 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keyword1,keyword2,keyword3'> <meta http-e

找出N个数据中的最大的K个数据---堆排序

从N个数据中找出最大的K个数据,而且这里有一个限制:内存里存不下所有的N个数据,但是可以存下K个数据.这就让我们打消了用排序的方法来解的念头. 在这里我们使用堆排序来完成. 因为我们只能有K个数据那么大的空间,所以我们建一个K大的堆,将N的前K个数据插入到堆中,然后调整堆.(对于堆结构不了解的可以查看我微博  http://helloleex.blog.51cto.com/10728491/1768758) 对于最大的K个数据,我们要怎么找出来呢.我们首先要确定我们是要用大顶堆还是小顶堆.  用

36辆车和6个赛道,筛选出最快的3辆车

问题描述:有36辆赛车和6条跑道,没有计时器的前提下,最少用几次比赛可以筛选出最快的3辆赛车? 情况1:不能标记 将36辆车分成6组,每组6辆车,每组分别进行比赛,留下每组的前3名.还有18辆车(6次) 将18辆车分成3组,每组6辆车,每组分别进行比赛,留下每组的前3名.还有9辆车(3次) 从9辆车中选择6辆进行一次比赛,留下前3名.留下的3辆车和没有参加比赛的3辆车,还有6辆车(1次) 最后6辆车比赛选出前3名(1次) 总共6+3+1+1=11次 情况2:可以标记 方法1(8次) 将36辆车分

[ jquery 过滤器 filter(expr|obj|ele|fn) ] 筛选出与指定表达式匹配的元素集合,这个方法用于缩小匹配的范围,用逗号分隔多个表达式

筛选出与指定表达式匹配的元素集合,这个方法用于缩小匹配的范围,用逗号分隔多个表达式 当参数是函数时,函数里面的参数解释如下: 一个函数用来作为测试元素的集合.它接受一个参数index,这是元素在jQuery集合的索引.在函数, this指的是当前的DOM元素 实例:<!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equ

代码中输入数字自动筛选出最大值,使用array,for loop and if (21.9.2017)

# include <stdio.h> # define N 20 main(){ int a, b; int array[N]={1,2,3,4,7,45,45,23,4,1,0,432,42,55,24,64,46}; //array中输入需要排序的数字 int max = array[0]; for(a = 1; a < N; a++){ if(array[a]>max){ max = array[a]; //使用max函数,快速筛选出最大值 } } printf("