C语言 读取txt文件 获取系统时间

麻烦各位大神帮我看看为什么读不出文件里的内容

 题目是在数据文件day.txt中存放了环境保护相关纪念日信息,读取相关信息,显示其星期值以及当年该纪念日的星期值

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    
    FILE *fp;
    fp=fopen("day.txt","r");
    int y,m,d;
    char name[10];
    time_t timep;
    struct tm*p;
    time(&timep);
    p=gmtime(&timep);
    fscanf(fp,"%s,%d,%d,%d",name,&y,&m,&d);
    printf("%s:%d--%d\n",name,y,1900+p->tm_year);
    printf("%d年%d月%d日\n",y,m,d);
    printf("%d年%d月%d日\n",1900+p->tm_year,1+p->tm_mon,p->tm_mday);
    fclose(fp);
    return 0;
 } 

txt文件内容如下

程序要求输出如下图

 

实际输出

文件是怎么生成的,可以考虑定义结构体,保存结构体,读出来也是结构体。

我看你文件的定义时先整数然后才到字符串,但是你

 fscanf(fp,"%s,%d,%d,%d",name,&y,&m,&d);这里却是先字符串再到整数,这样读取到的数据就反了吧。

然后你文件中是使用空格隔开的,但是你这里用的是逗号隔开,这样也会有问题。

 fscanf(fp,"%d %d %d %s", &y,&m,&d, name); 改成这样试试。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632