c语言读取csv文件.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
include?stdio.h #include?string.h #define?MAX_LINE 128 typedef?struct { ??char?week[4]; ??char?month[4]; ??char?date[3]; ??char?hour_minute_second[9]; ??char?year[5]; } system_time_t;?void?main() { ??FILE?*fp; ??float?value; ??system_time_t system_time; ??char?line[MAX_LINE]; ??if((fp=fopen(d:\\1.csv,r))?==?NULL) ??{ ????printf(Cant open d:\\1.csv\n); ??} ??memset(system_time,?0,?sizeof(system_time_t)); ??while?(fgets(line, MAX_LINE, fp)) ??{ ???? ????sscanf(line,?%f , %s%s%s%s%s,?value, system_time.week, system_time.month, system_time.date, ??????system_time.hour_minute_second, system_time.year); ???? ????printf(value=%f system_time=%s %s %s %s %s\n, value, ??????system_time.week, system_time.month, system_time.date, ??????system_time.hour_minute_second, system_time.year); ??} } struct record_t { ??double money; ??time_t tim; }; typedef struct record_t record; static const char *const short_months[12] = { ????Jan, Feb, Mar, Apr, May, Jun, ????Jul, Aug, Sep, Oct, Nov, Dec }; //把每行转成record的数据结构。 record covert(char* inputval) { ??record retval; ??char* comapos; ??char weekday[4] = {\0}, mon[4]={\0}; ??struct tm gtm; ??int n; ??assert(inputval != null); ??comapos = strstr(inputval,??,); ??assert(comapos != null); ??*comapos = \0;; ??retval.money = atof(inputval); ??sscanf(comapos+1, %s %s %d %d:%d:%d %d, weekday, mon, gmt.tm_mday, gmt.tm_hour, gmt.tm_min, gmt.tm_sec ??????????gmt.tm_year); ??for (n=0; n 12; n++) ????if (strcmp(mon, short_months[n]) == 0) ??????break; ??gmt.tm_mday = n; ??gmt.tm_year -= 1900; ??gmt.tm_isdst = -1; ??retval.tim = mktime(gmt) + GMTOFF(gmt); ??return retval; } 其他的很简单了,从中间读一行,判断和你要的时间的大小,大则读后面的中间一行,小则读前面的一半的一行,通过递归读出最你需要的那一行。

文档评论(0)

yurixiang1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档